【发布时间】:2021-05-31 15:20:41
【问题描述】:
当我添加数据以访问数据库时,我得到了错误:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
TB2.Clear()
NameofG.Clear()
NunberofG.Clear()
UnitofG.Clear()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
pro = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Piyawat\Desktop\PPCC\Stock.accdb;"
connstring = pro
myconnection.ConnectionString = connstring
If myconnection.State = ConnectionState.Closed Then
myconnection.Open()
End If
command = "insert into Stock([InvoiceID],[Type],[Item],[Amout],[Unit]) Value ('" & TB2.Text & "','" & CB1.Text & "','" & NameofG.Text & "','" & NunberofG.Text & "','" & UnitofG.Text & "')"
Dim cmd As OleDbCommand = New OleDbCommand(command, myconnection)
cmd.Parameters.Add(New OleDbParameter("InvoiceID", CType(TB2.Text, String)))
cmd.Parameters.Add(New OleDbParameter("Type", CType(CB1.Text, String)))
cmd.Parameters.Add(New OleDbParameter("Item", CType(NameofG.Text, String)))
cmd.Parameters.Add(New OleDbParameter("Amout", CType(NunberofG.Text, String)))
cmd.Parameters.Add(New OleDbParameter("Unit", CType(UnitofG.Text, String)))
MsgBox("Record Save")
Try
cmd.ExecuteNonQuery()
cmd.Dispose()
TB2.Clear()
CB1.Text.DefaultIfEmpty
NameofG.Clear()
NunberofG.Clear()
UnitofG.Clear()
Catch ex As Exception
MsgBox("Mistake")
End Try
End Sub
如何修复错误?请帮忙。谢谢
【问题讨论】:
-
从外观上看,
myconnection.ConnectionString可能在您尝试将其设置为connstring时已打开? -
您的连接已经打开,有什么难理解的?所以,删除这个:
myconnection.ConnectionString = connstring设置为一次,而不是每次你必须使用你的命令。也尝试打开你的连接一次(因为我们看到连接变量myconnection在其他地方初始化) -
您的 SQL 语法和您拥有的参数都是错误的——它们将不起作用。请参阅下面的代码。参数意味着您不必将文本框值放在 sql 字符串中 - 并且您不需要所有引号、单引号等。见下文。