datagridview - 从 SQLReader 填充 DataGridView

标签 datagridview vb.net-2010 sqldatareader

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

一个大纲是我正在从 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

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

多谢你们

最佳答案

您不能将数据读取器直接绑定(bind)到 WinForms 中的数据 GridView 。相反,您可以使用阅读器加载数据表并将数据表分配给 DataGridView 的数据源

Dim dt = new DataTable()
dt.Load(reader)
DataGridView1.AutoGenerateColumns = True
DataGridView1.DataSource = dt
DataGridView1.Refresh()

关于datagridview - 从 SQLReader 填充 DataGridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18151641/

相关文章:

vb.net - 从 DatagridView 创建 Tiff 位图文件

c# - DataGridView 中的选定行始终为 0

vb.net - 在Prism中将 View 与非默认构造函数一起使用

.net - SQL Server 和 SqlDataReader - 万亿条记录 - 内存

c# - 如何在 C# 中使用 SqlDataReader 获取行数

c# - 如何根据DatagridView中的选定单元格获取行集合

vb.net - 使用名称变量访问多个表单控件

c# - MySQL 存储过程和 C# 数据读取器列错误值

c# - 需要在 Winform 中禁用数据 GridView 中的列