Database 将记录保存到MS Access数据库时出错

Database 将记录保存到MS Access数据库时出错,database,vb.net,ms-access,Database,Vb.net,Ms Access,我在VB中的代码中有几个错误,我不知道如何解决它 第一个错误出现在以下部分: 值不能为空参数名称:数据表 da.Fill(dt, "ORDER") Con.Close() 第二个错误在本部分中: dsNewRow = ds.Tables(0).NewRow() 下面是全部代码: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

我在VB中的代码中有几个错误,我不知道如何解决它

第一个错误出现在以下部分:
值不能为空参数名称:数据表

da.Fill(dt, "ORDER")
    Con.Close()
第二个错误在本部分中:

 dsNewRow = ds.Tables(0).NewRow()
下面是全部代码:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    dbProvider = "Provider=Microsoft.ACE.OLEDB.12.0;"
    dbSource = "Data Source=C:\Users\pao\Desktop\Projecto1.accdb"
    Con.ConnectionString = dbProvider & dbSource
    Con.Open()
    sql = "SELECT *FROM ORDER"
    da = New OleDb.OleDbDataAdapter(sql, Con)
    da.Fill(dt, "ORDER")
    Con.Close()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    If name_.TextLength > 0 And address_.TextLength > 0 And key.TextLength > 0 Then
        Dim pizzaArr() = pizza.ToArray()
        Dim spagArr() = spaghetti.ToArray()
        Dim grindersArr() = grinders.ToArray()
        Dim dsNewRow As  DataRow
        For Each element As String In grindersArr
            MsgBox(element)
        Next

        dsNewRow = ds.Tables(0).NewRow()
        dsNewRow.Item(0) = key.Text
        dsNewRow.Item(1) = name_.Text
        dsNewRow.Item(2) = address_.Text
        ds.Tables("ORDER").Rows.Add(dsNewRow)
        da.Update(ds, "ORDER")
        MsgBox("ORDER ADDED", MsgBoxStyle.Information, "record")
        maxrows = ds.Tables("ORDER").Rows.Count
        ''
    Else
        MsgBox("COMPLETE THE FORM!", MsgBoxStyle.Exclamation, "INCOMPLETE!")
        Exit Sub
    End If

    '' Dim cb As New OleDb.OleDbCommandBuilder(da)
    '' Dim dsNewRow As DataRow

    ''    dsNewRow = ds.Tables("form").NewRow()
    ''  dsNewRow.Item(0) = key.Text
    ''   dsNewRow.Item(1) = name_.Text
    ''   dsNewRow.Item(2) = address_.Text

    ''   ds.Tables("form").Rows.Add(dsNewRow)

    MsgBox("RECORD ADDED", MsgBoxStyle.Information, "record")
    MaxRows = ds.Tables("form").Rows.Count 

End Sub

我看不到你关于
dt
的声明。确保在前面加上单词
new
。先生,你是什么意思?是这样吗?da.Fill(新数据表,“订单”)或da.Fill(新Dt,“订单”)?不,我猜您的代码中有一行:
Dim Dt As DataTable
。将其更改为
Dim dt作为新数据表
。否则,
ORDER
是一个关键词,应该放在括号中
[ORDER]
。如果不是太晚,我会将该表的名称更改为其他名称。这显然不是VB6。对,我明白了。现在我遇到另一个错误,我更改了表名,现在它的da.Fill(dt,“tableto”)Con.Close()给我的错误对象不是ADODB.RecordSet或ADODB.Record。参数名称:adodb我看不到任何参数
adodb
!在.NET中,您无论如何都会使用OleDb,而不是ADODB。ADODB是VB6。