【问题标题】:How to display data in a gridview如何在网格视图中显示数据
【发布时间】:2016-04-04 09:41:30
【问题描述】:

我想将数据库中的数据显示到gridview。但是,当我进行调试时,datareader 会读取数据,但无法将其显示到网格中。 你能帮忙解决这个问题吗? 这是我的代码。

        Dim strSQL_ = "SELECT FDREF, FDESTKCODE, FDESTKEXP, FDEAMOUNT, FDEUNIT, FDEPRICE, " & _
            "FDETOTALPRICE, FMAREF FROM FICHEDETAIL WHERE FMAREF = '" & fmaref3_ & "'"
    Dim dsx1 = New DataSet
    Dim adx1 As New SqlClient.SqlDataAdapter(strSQL, objCon)
    adx1.Fill(dsx1, "a")
    Dim t1 As DataTable = dsx1.Tables("a")
    mygrid.DataSource = dsx1.Tables("a")

    objCon.Close()

    Dim sqlCmd_ As New SqlCommand(strSQL_, objCon)
    objCon.Open()
    sqlCmd_.ExecuteNonQuery()

    Dim dreader_ As SqlDataReader
    dreader_ = sqlCmd_.ExecuteReader

    If dreader_.Read Then

        Dim a As Integer
        For a = 0 To GridView6.RowCount - 1
            Dim ref_ As String = dreader_.GetInt32(dreader_.GetOrdinal("FDREF")).ToString()
            ref_ = dreader_.GetString(dreader_.GetOrdinal("FDESTKCODE")).ToString()
            GridView6.SetRowCellValue(a, "FDESTKCODE", ref_)
            ref_ = dreader_.GetString(dreader_.GetOrdinal("FDESTKEXP")).ToString()
            GridView6.SetRowCellValue(a, "FDESTKEXP", ref_)
            ref_ = dreader_.GetDouble(dreader_.GetOrdinal("FDEAMOUNT")).ToString()
            GridView6.SetRowCellValue(a, "FDEAMOUNT", ref_)
            ref_ = dreader_.GetString(dreader_.GetOrdinal("FDEUNIT")).ToString()
            GridView6.SetRowCellValue(a, "FDEUNIT", ref_)
            ref_ = dreader_.GetDecimal(dreader_.GetOrdinal("FDEPRICE")).ToString()
            GridView6.SetRowCellValue(a, "FDEUNIT", ref_)
            ref_ = dreader_.GetDecimal(dreader_.GetOrdinal("FDETOTALPRICE")).ToString()
            GridView6.SetRowCellValue(a, "FDETOTALPRICE", ref_)

        Next
    End If

【问题讨论】:

  • 通常objCon.Close()后面的代码是多余的。 mygrid.DataSource = dsx1.Tables("a") 行足以填满GridView
  • 是的,你完全正确。我尝试了很多事情或方法来应对。之后的代码。 objCon.close() 我做了注释行,我仍然无法在网格中显示它们。

标签: sql vb.net gridview devexpress xtragrid


【解决方案1】:

For 中的代码从未被执行,因为此时 GridView6.RowCount = 0

我想你想做的是

Dim strSQL = "SELECT FDREF, FDESTKCODE, FDESTKEXP, FDEAMOUNT, FDEUNIT, FDEPRICE, " & _
            "FDETOTALPRICE, FMAREF FROM FICHEDETAIL WHERE FMAREF = '" & fmaref3_ & "'"
    Dim dsx1 = New DataSet
    Dim adx1 As New SqlClient.SqlDataAdapter(strSQL, objCon)
    adx1.Fill(dsx1, "a")
    Dim t1 As DataTable = dsx1.Tables("a")
    mygrid.DataSource = t1

    objCon.Close()   

【讨论】:

  • 对不起@equisde。当我使用while循环时它不起作用。它仍然读取数据但无法显示
  • @kunzhan 更新了答案。这段代码应该足以填充你的datagridview
  • 其实我在devexpress中使用gridview属性,而不是datagridview @equisde
猜你喜欢
  • 1970-01-01
  • 2022-01-08
  • 1970-01-01
  • 2017-01-06
  • 2011-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-06
相关资源
最近更新 更多