'INSERT INTO' 语句 VB.NET ACCESS 中的语法错误
Syntax error in 'INSERT INTO' statement VB.NET ACCESS
我正在尝试使用这一行 VB.NET 将记录插入数据库,但出现语法错误?我认为我没有发现任何问题?
SQL = ("INSERT INTO Orders (Items, CustName, Table, Cost, Price)
VALUES ('" & ItemsString & "', '" & CustName & "', '" & Table &
"', '" & Cost & "', '" & Price & "');")
我不确定字符串外的括号是做什么用的,但它们不是必需的。 总是 使用参数。 从不 连接字符串以构建 CommandText
。
请注意 TABLE 是保留字。括在方括号中。
我不得不猜测参数的数据类型。检查您的数据库以获取正确的值。钱应该是十进制。
这就是参数化查询的样子。
Private Sub InsertRecord(ItemsString As String, CustName As String, Table As String, Cost As Decimal, Price As Decimal)
Dim SQL = "INSERT INTO Orders (Items, CustName, [Table], Cost, Price) VALUES (@ItemsString, @CustName, @Table, @Cost, @Price);"
Using cn As New OleDbConnection("Your conneciton string"),
cmd As New OleDbCommand(SQL, cn)
cmd.Parameters.Add("@ItemsString", OleDbType.VarChar).Value = ItemsString
cmd.Parameters.Add("@CustName", OleDbType.VarChar).Value = CustName
cmd.Parameters.Add("@Table", OleDbType.VarChar).Value = Table
cmd.Parameters.Add("@Cost", OleDbType.Decimal).Value = Cost
cmd.Parameters.Add("@Price", OleDbType.Decimal).Value = Price
cn.Open()
cmd.ExecuteNonQuery()
End Using
End Sub
我正在尝试使用这一行 VB.NET 将记录插入数据库,但出现语法错误?我认为我没有发现任何问题?
SQL = ("INSERT INTO Orders (Items, CustName, Table, Cost, Price)
VALUES ('" & ItemsString & "', '" & CustName & "', '" & Table &
"', '" & Cost & "', '" & Price & "');")
我不确定字符串外的括号是做什么用的,但它们不是必需的。 总是 使用参数。 从不 连接字符串以构建 CommandText
。
请注意 TABLE 是保留字。括在方括号中。
我不得不猜测参数的数据类型。检查您的数据库以获取正确的值。钱应该是十进制。
这就是参数化查询的样子。
Private Sub InsertRecord(ItemsString As String, CustName As String, Table As String, Cost As Decimal, Price As Decimal)
Dim SQL = "INSERT INTO Orders (Items, CustName, [Table], Cost, Price) VALUES (@ItemsString, @CustName, @Table, @Cost, @Price);"
Using cn As New OleDbConnection("Your conneciton string"),
cmd As New OleDbCommand(SQL, cn)
cmd.Parameters.Add("@ItemsString", OleDbType.VarChar).Value = ItemsString
cmd.Parameters.Add("@CustName", OleDbType.VarChar).Value = CustName
cmd.Parameters.Add("@Table", OleDbType.VarChar).Value = Table
cmd.Parameters.Add("@Cost", OleDbType.Decimal).Value = Cost
cmd.Parameters.Add("@Price", OleDbType.Decimal).Value = Price
cn.Open()
cmd.ExecuteNonQuery()
End Using
End Sub