将datagrid链接到adodb

时间:2015-02-16 20:05:31

标签: vb.net datagridview adodb

请任何人都能说出这个附加项目的错误 *数据在网格中显示为空! * dgv.rows.add(5)也不起作用!

https://www.dropbox.com/s/s96dw694wc744od/WindowsApplication2.rar?dl=0

Imports ADODB
Imports System.Data.OleDb

Public Class Form1
Dim Cntemp As New ADODB.Connection
Dim Rstemp As New ADODB.Recordset
Dim Dataset1 As New DataSet
Dim DataAdapter1 As New OleDbDataAdapter

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As     System.EventArgs) Handles MyBase.Load
    dt.Value = Today

    Cntemp.Open("Provider=Microsoft.ace.OLEDB.12.0; Data Source=" &  Application.StartupPath & "\vbdata.accdb")
    Rstemp.Open("Select * From tbltemp", Cntemp, 1, 2)

    DataAdapter1.Fill(Dataset1, Rstemp, "tbltemp")
    dgv.DataSource = Dataset1.Tables(0)

    dgv.Rows.Add(5)

 End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
    If Cntemp.State = 1 Then Cntemp.Close()

    Cntemp.Open("Provider=Microsoft.ace.OLEDB.12.0; Data Source=" & Application.StartupPath & "\vbdata.accdb")

    Dim totalprc, u, m As Integer
    u = uprc.Text
    m = mnum.Text
    totalprc = u * m

    Cntemp.Execute("insert into tbltemp (mname,uprice,mnum,tprice) " _
                   & " values('" _
                   & mnm.Text _
                   & "','" _
                   & uprc.Text _
                   & "','" _
                   & mnum.Text _
                   & "','" _
                   & totalprc & "')")

    Dataset1.Clear()
    Rstemp.Open("Select * From tbltemp", Cntemp, CursorTypeEnum.adOpenDynamic, LockTypeEnum.adLockOptimistic)

    DataAdapter1.Fill(Dataset1, Rstemp, "tbltemp")
    dgv.DataSource = Dataset1.Tables(0)
    dgv.Refresh()
End Sub

Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
    Application.Exit()
End Sub
End Class

1 个答案:

答案 0 :(得分:0)

尝试使用form1加载事件:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        dt.Value = Today

        Cntemp.Open("Provider=Microsoft.ace.OLEDB.12.0; Data Source=" & Application.StartupPath & "\vbdata.accdb")
        Rstemp.Open("Select * From tbltemp", Cntemp, 1, 2)

        If Not Rstemp.EOF Then
            DataAdapter1.Fill(Dataset1, Rstemp, "tbltemp")
            dgv.DataSource = Dataset1.Tables(0)
        End If
    End Sub

从设计器中删除DataGridView对象中所有已创建的列。我强烈建议您使用源绑定datagridview,而不是使用旧版ADODB。

输出: enter image description here