繁体   English   中英

MySQL使用VB.net插入错误

[英]MySQL Insert into error using VB.net

我使用VB.net访问MySQL数据库并将数据插入此表。 我从opera数据库中获取这些数据,我使用的查询是:

Dim queryInsert As String = "INSERT INTO customer_company(customer_id, name, street, zip, 
city,country,comments) values(" + c.sn_account.Trim + ", " + name + ", " + road + ", " 
+ postcode + ", " + city + ", " + country + ", " + name + ")"

我在记录时遇到错误:

B010,Charles Birt&Co,Loch House,null,Tenby,Dyfed,Charles Birt&Co

我虽然这可能是数据中的'&',所以我尝试用||替换它 chr(38)|| 并且还使用\\&逃避它,但这些不起作用。 此外,我尝试将邮政编码设置为各种事物,如'N / A',''和null,因为此特定记录没有邮政编码,但仍然会出错。

不知道它的数据或查询,任何建议都会很棒。

请在执行SQL命令时使用参数 这可以避免您在问题中遇到的问题,并最大限度地减少SQL注入攻击:

Dim queryInsert As String = 
"INSERT INTO customer_company(customer_id, name, street, zip,city,country,comments) values (@customer_id, @name, @street, @zip, @city, @country, @comments)"

Dim cmd as new MySqlCommand(queryInsert, <YourConnection>)
cmd.Parameters.AddWithValue("@customer_id", c.sn_account.Trim)
cmd.Parameters.AddWithValue("@name", name)
cmd.Parameters.AddWithValue("@street", road)
cmd.Parameters.AddWithValue("@zip", postcode)
cmd.Parameters.AddWithValue("@city", city)
cmd.Parameters.AddWithValue("@country", country)
cmd.Parameters.AddWithValue("@comments", name)
cmd.ExecuteNonQuery();

不太确定这是否可以解决您的问题,但是,当在SQL中添加/插入带有字符串数据类型列的值时,您应该具有''。

在你的例子中:

Dim queryInsert As String = "INSERT INTO customer_company(customer_id, 
name, street, zip, city,country,comments) 
values(" + c.sn_account.Trim + ", '" + name + "', '" + road + "', " 
+ postcode + ", '" + city + "', '" + country + "', '" + name + "')"

我不在customer_id和postcode中添加'',因为我认为它们不是字符串日期类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM