从 SQLReader 填充 DataGridView
Posted
技术标签:
【中文标题】从 SQLReader 填充 DataGridView【英文标题】:Filling a DataGridView from SQLReader 【发布时间】:2013-08-11 16:16:17 【问题描述】:我有点卡在我写的一些代码上
大纲是我正在从 SQL 数据库中读取一些数据,并希望将其显示在表单上的 DataGridView 中。我已经确认有数据从数据库返回,但不确定为什么没有出现。我已经从互联网上学习了一些教程,但到目前为止还没有工作
这是我的代码
Private Sub PopulateGrid()
Dim Con As New SqlClient.SqlConnection
Dim strCon As String = CropTrackMod.strConn
Dim strCommand As String = "select * from customer"
Try
Con.ConnectionString = strCon
Dim Cm As New SqlClient.SqlCommand(strCommand, Con)
Con.Open()
Dim reader As SqlClient.SqlDataReader = Cm.ExecuteReader()
'test to confirm data received
reader.Read()
MsgBox(reader.Item("ContactName"))
DataGridView1.AutoGenerateColumns = True
DataGridView1.DataSource = reader
DataGridView1.Refresh()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error")
Finally
If Con.State = ConnectionState.Open Then
Con.Close()
End If
End Try
End Sub
我也尝试实现数据表,但收到数据类型的转换错误 任何帮助将不胜感激
谢谢大家
【问题讨论】:
我刚刚通过实现数据表解决了这个问题。我将阅读器传递给数据表,然后将dataridview的数据源分配给数据表 我不明白为什么这个问题被否决了,特别是因为没有对被否决的解释...... 感谢代表更改,非常感谢 【参考方案1】:您不能将数据阅读器直接绑定到 WinForms 中的数据网格视图。相反,您可以使用阅读器加载数据表并将数据表分配给 DataGridView 的数据源
Dim dt = new DataTable()
dt.Load(reader)
DataGridView1.AutoGenerateColumns = True
DataGridView1.DataSource = dt
DataGridView1.Refresh()
【讨论】:
抱歉回复晚了,我一直在度假,很感谢您以上是关于从 SQLReader 填充 DataGridView的主要内容,如果未能解决你的问题,请参考以下文章