从SQLReader填充DataGridView

Pow*_*015 6 datagridview sqldatareader vb.net-2010

我有点卡在我写的一些代码上

概述是我正在从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
Run Code Online (Sandbox Code Playgroud)

我也试图实现数据表,但在数据类型上收到转换错误任何帮助将不胜感激

多谢你们

Ste*_*eve 13

您无法将datareader直接绑定到WinForms中的datagridview.相反,您可以使用阅读器加载数据表,并将数据表分配给DataGridView的数据源

Dim dt = new DataTable()
dt.Load(reader)
DataGridView1.AutoGenerateColumns = True
DataGridView1.DataSource = dt
DataGridView1.Refresh()
Run Code Online (Sandbox Code Playgroud)