Database 将记录保存到MS Access数据库时出错
我在VB中的代码中有几个错误,我不知道如何解决它 第一个错误出现在以下部分: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
值不能为空参数名称:数据表
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。