【问题标题】:How to display data from SQL Server on a DataGridView如何在 DataGridView 上显示来自 SQL Server 的数据
【发布时间】:2017-05-23 09:31:50
【问题描述】:

我想在DataGridView 上加载或显示来自 SQL Server 的数据。

构建成功,运行时没有错误。 modul_koneksi(我认为)表单没有任何问题,因为它适用于我的其他表单(form_login

但是,我的DataGridView 中没有显示任何内容。我该如何解决这个问题?

代码:

Imports System.Data.SqlClient

Public Class FormProduk
    Private Sub FormProduk_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim str As String = "Data Source=Fahriy;Initial Catalog=DBLogin;Integrated Security=True"
        Dim connection As New SqlConnection(str)
        Dim com As String = "Select * From tbl_user"
        Dim dataadapter As New SqlDataAdapter(com, connection)
        Dim dataset As New DataSet()
        dataadapter.Fill(dataset, "tbl_user")
        DataGridView1.DataSource = dataset.Tables()
    End Sub
End Class

【问题讨论】:

  • 由于您是新手,请考虑阅读tour 以了解该网站的运作方式。

标签: sql-server vb.net sql-server-2008 datagridview


【解决方案1】:

您应该在DataGridView 中定义要加载的表:

DataGridView1.DataSource = dataset.Tables("tbl_user") 

【讨论】:

    【解决方案2】:

    您不能将.DataSource 属性设置为dataset.Tables。相反,您需要使用位于您的DataSet 中的DataTable 来设置它:

    DataGridView1.DataSource = dataset.Tables("tbl_user") 
    

    但是我认为你可以通过去掉 SqlDataAdapter 并直接加载到 DataTable 来简化代码

    Dim dt As New DataTable
    dt.Load(com.ExecuteReader())
    
    DataGridView1.DataSource = dt
    

    我也会考虑实现Using

    有时您的代码需要非托管资源,例如文件句柄、COM 包装器或 SQL 连接。 Using 块保证在您的代码完成后处理一个或多个此类资源。这使得它们可供其他代码使用。

    更改后,您的代码将如下所示:

    Dim dt As New DataTable
    
    Using con As New SqlConnection("Data Source=Fahriy;Initial Catalog=DBLogin;Integrated Security=True"),
          cmd As New SqlCommand("SELECT * FROM  tbl_user", con)
        con.Open()
    
        dt.Load(cmd.ExecuteReader())
    End Using
    
    DataGridView1.DataSource = dt
    

    【讨论】:

      【解决方案3】:

      信息不足,您确定您的连接字符串str 正确吗?您可以尝试更改此代码:

      Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
          Dim str As String = "Data Source=Fahriy;Initial Catalog=DBLogin;Integrated Security=True"
          Dim conn As New SqlConnection(str)
          Dim cmd As String = "Select * From tbl_user"
          Dim adapter As New SqlDataAdapter(cmd, conn)
          Dim tabeluser As New DataSet
          adapter.Fill(tabeluser)
          DataGridView1.DataSource = tabeluser.Tables
      End Sub
      

      【讨论】:

        猜你喜欢
        • 2013-09-03
        • 1970-01-01
        • 1970-01-01
        • 2013-12-03
        • 1970-01-01
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 2015-04-25
        相关资源
        最近更新 更多