我有点卡在我正在编写的代码上
概述是我正在从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
我还试图实现数据表,但是在数据类型上收到转换错误 任何帮助将不胜感激
谢谢你们
答案 0 :(得分:13)
您无法将数据头直接绑定到WinForms中的datagridview。相反,您可以使用阅读器加载数据表并将数据表分配给DataGridView的数据源
Dim dt = new DataTable()
dt.Load(reader)
DataGridView1.AutoGenerateColumns = True
DataGridView1.DataSource = dt
DataGridView1.Refresh()