vb.net读取access数据

img


问问大家,怎么样用vb.net代码实现在填入数据的时候查询表格中的数值啊。

填入数据的时候就查询,可以在textbox的textchanged事件里写代码,否则在button的click里面写
总之就是拼接sql,代入你的输入框,然后将结果绑定到右边的 datagridview

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/378827
  • 这篇博客你也可以参考下:vb.net按式样比较字符串
  • 除此之外, 这篇博客: 【日常小结】VB.NET下操作Access数据库中的 VB.NET下操作Access数据库 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 啥也不说,直接上代码

    第一步:建立数据库以及数据表 

     '创建新的空access数据库表
            Dim cat As Catalog = New Catalog()
            Dim s As String = "ProductData.mdb"
            If Not (My.Computer.FileSystem.FileExists(System.AppDomain.CurrentDomain.BaseDirectory & s)) Then
                cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;Data Source= ProductData.mdb")
                'Console.WriteLine("Database Created Successfully")
                ' 以下代码创建一个名为“测试项目表”单主键新表
                Dim Cn As ADODB.Connection = New ADODB.Connection   '定义连接
                Dim objTable As ADOX.Table = New ADOX.Table         '定义新表
                Cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ProductData.mdb") '链接到数据库
                objTable.Name = "DataRecord"    '表命名
    
                '给表“测试项目表” 创建一个新的字段,字段名“主键”
                objTable.Columns.Append("ID", , ADOX.DataTypeEnum.adVarWChar)
    
                '创建并追加一个新的主键。注意:我们只是通过“PimaryKey_Field”作为主键源列。新键被追加到“测试项目表”的键集        
                objTable.Keys.Append("ID", ADOX.KeyTypeEnum.adKeyPrimary, "ID")
                objTable.Columns.Append("SN", ADOX.DataTypeEnum.adVarWChar)    '追加一个文本类型字段
                objTable.Columns.Append("datetime", ADOX.DataTypeEnum.adVarWChar)    '追加一个时间类型字段
                cat.Tables.Append(objTable) '把所有的新字段追加到表
                objTable = Nothing
                cat = Nothing
                cat = Nothing
                cat = Nothing
                cat = Nothing
                cat = Nothing
                cat = Nothing
                Cn.Close()
                Cn = Nothing
            Else
                MsgBox("数据库以及表已经存在")
            End If

     第二步:往数据表中插入数据

    Dim conStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ProductData.mdb"
            Dim con As OleDb.OleDbConnection = New OleDb.OleDbConnection(conStr)
            Dim sql As New System.Text.StringBuilder
            sql.Append("insert into DataRecord([ID],[SN],[datetime])")
            sql.Append("values('" & Guid.NewGuid().ToString() & "','" & Guid.NewGuid().ToString() & "','" & Date.Now & "')")
            con.Open()
            Dim cmd As New System.Data.OleDb.OleDbCommand(sql.ToString, con)
            cmd.ExecuteNonQuery()
            con.Close()
            MsgBox("插入成功")

     第三步:查询数据库数据

     Dim dr As OleDb.OleDbDataReader
            Dim dts As DataTable = New DataTable
            Dim conStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ProductData.mdb"
            Dim con As OleDb.OleDbConnection = New OleDb.OleDbConnection(conStr)
            Dim sql As New System.Text.StringBuilder
            sql.Append("select * from  DataRecord")
            con.Open()
            Dim cmd As New System.Data.OleDb.OleDbCommand(sql.ToString, con)
            dr = cmd.ExecuteReader()
            dts.Load(dr)
            sum = dts.Rows.Count
            labbum.Text = sum.ToString()
            dr.Close()
            con.Close()
            DataGridView1.DataSource = dts
            'MsgBox("查询完成")

    以上实现了建立库表,插入,查询,仅供参考;

    个人V(zp2013822)

参考下面的代码,在combobox 的 selectindexchanged事件里进行查询。


    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
        Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\YourDatabase.accdb;Persist Security Info=False;"
        Using connection As New OleDbConnection(connectionString)
            connection.Open()
            Dim query As String = "SELECT * FROM YourTableName WHERE 模数 = @Param1 AND 分度圆直径 = @Param2 AND 精度等级 = @Param3"
            Using command As New OleDbCommand(query, connection)
                command.Parameters.AddWithValue("@Param1", ComboBox1.Text)
                command.Parameters.AddWithValue("@Param2", ComboBox2.Text)
                command.Parameters.AddWithValue("@Param3", ComboBox3.Text)
                Dim adapter As New OleDbDataAdapter(command)
                Dim dataSet As New DataSet()
                adapter.Fill(dataSet)
                DataGridView1.DataSource = dataSet.Tables(0)
            End Using
        End Using
    End Sub