我正在尝试插入到mysql表中。这是我的代码......
Dim cmdText = "INSERT INTO complete_log ('cust_id', 'business', 'note', 'date_stamp') values (@cid,@bus,@notey,@datey)"
Dim conn As New MySqlConnection("server=theipofserver;user id=id;password=mypass;database=thedatabase")
Using cmd = New MySqlCommand(cmdText, conn)
conn.Open()
Dim testy As String
testy = TextBox1.Text
Dim dater = Date.Today + TimeOfDay
cmd.Parameters.AddWithValue("@cid", c_id)
cmd.Parameters.AddWithValue("@bus", c_business)
cmd.Parameters.AddWithValue("@notey", testy)
cmd.Parameters.AddWithValue("@datey", dater)
cmd.ExecuteNonQuery()
End Using
但是,我收到以下错误:
MySql.Data.MySqlClient.MySqlException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''cust_id', 'business', 'note', 'date_stamp') values ('ID','null','first one'' at line 1
我要插入的表有4列,所有varchars都有足够的空间(varchar(100))
以下是有关错误的详细信息...第31行发生错误...
Line 29: cmd.Parameters.AddWithValue("@notey", testy)
Line 30: cmd.Parameters.AddWithValue("@datey", dater)
Line 31: cmd.ExecuteNonQuery()
Line 32: End Using
Line 33: TextBox1.Font.Bold = True
那么,我在这里做错了什么?关于更好地插入mysql表的方法的任何提示将不胜感激!
答案 0 :(得分:3)
不要在表名或列名周围使用引号。
INSERT INTO complete_log (`cust_id`, `business`, `note`, `date_stamp`)
values (@cid,@bus,@notey,@datey)
如果要转义表名和列名,请使用反引号。但你只需要逃避reserved words in MySQL。
答案 1 :(得分:1)
不要在叛逆者中指定列名
而不是
Dim cmdText = "INSERT INTO complete_log ('cust_id', 'business', 'note', 'date_stamp') values (@cid,@bus,@notey,@datey)"
待办事项
Dim cmdText = "INSERT INTO complete_log (cust_id, business, note, date_stamp) values (@cid,@bus,@notey,@datey)"
答案 2 :(得分:1)
更改
INSERT INTO complete_log ('cust_id', 'business', 'note', 'date_stamp')
到
INSERT INTO complete_log (cust_id, business, note, date_stamp)