【问题标题】:How to display specific row in datagridview from ms access database in VB如何在VB中的ms access数据库中显示datagridview中的特定行
【发布时间】:2016-10-19 05:34:17
【问题描述】:

您好,我正在开发一个 vb 项目。我有一个包含 3 个列(Itno、Name、Price)的 MS-access 数据库。 在表单中,我添加了两个文本框和添加按钮(TextBox2=Itno,Textbox=quantity)。 如果用户给出了 Itno 和数量并单击添加按钮,则 Itno 的名称和价格应与 Textbox3 中输入的数量一起显示在 datagridview 中。

据我所知,我已经尝试过了。但我无法在 Datagridview 中显示数据。谁能帮帮我...

导入 System.Data.OleDb 导入 System.Data.DataTable

Public Class Form1
    Dim ad As System.Data.OleDb.OleDbDataAdapter
    Dim cm As System.Data.OleDb.OleDbCommand
    Dim co As System.Data.OleDb.OleDbConnection
    Dim dr As System.Data.OleDb.OleDbDataReader
    Dim tb As New DataTable("Table")

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        tb.Columns.Add("Iteam", Type.GetType("System.Int32"))
        tb.Columns.Add("Quantity", Type.GetType("System.String"))
        tb.Columns.Add("Price", Type.GetType("System.String"))
        DataGridView1.DataSource = tb
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        co = New System.Data.OleDb.OleDbConnection
        co.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" &
                "Data Source=C:\Users\Vicky\Desktop\db\bill\bill.mdb;"
        Try
            co.Open()
            Dim cd As String
            cd = "SELECT * FROM item WHERE Itno='" & TextBox2.Text & "'"
            cm = New OleDb.OleDbCommand(cd, co)
            dr = cm.ExecuteReader()
            While dr.Read()
                Dim n As String
                Dim p As String
                p = dr("Price").ToString
                n = dr("Name").ToString
                tb.Rows.Add(p.ToString, TextBox3.Text, n.ToString)
                DataGridView1.DataSource = tb

            End While
            co.Close()
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try

    End Sub
End Class

【问题讨论】:

  • 你提供了相关代码,这很好,但是你没有提供任何解释,这同样重要。提供完整而清晰的解释,说明您要实现的目标以及代码的实际行为与您的期望有何不同。那些认为“标题说明一切”的人很少是正确的。
  • 如果您想从数据阅读器中填充DataTable,那么它是单行的:myDataTable.Load(myDataReader)
  • 如果DataTable 已经绑定到DataGrdiView,则没有理由再次绑定它。如果要更改数据,只需 Clear Rows 集合,然后重新填充。现有绑定将导致新数据出现在网格中。
  • 谢谢大家,你能在我的项目中给出正确的代码吗
  • 我不太清楚这个问题

标签: vb.net ms-access datagridview


【解决方案1】:
        Dim cd As String
        cd = "SELECT * FROM item WHERE Itno=" & TextBox2.Text & ""
        cm = New OleDb.OleDbCommand(cd, co)
        dr = cm.ExecuteReader
        While dr.Read()
            Dim n As String
            Dim p As String
            p = dr("Price").ToString
            n = dr("Name").ToString
            Dim R As DataRow = tb.NewRow
            R("Name") = n.ToString
            R("Quantity") = TextBox3.Text
            R("Price") = p.ToString
            tb.Rows.Add(R)
            DataGridView1.DataSource = tb

我已经更正了代码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    相关资源
    最近更新 更多