我正在尝试一些SQL代码,但当我尝试此代码时出现错误。VB.NET SqlException是未处理
Main.database.ExecuteCommand("UPDATE Contacts SET first_name='" + c.first_name + _
"', middle='" + c.middle + _
"', last_name='" + c.last_name + _
"', age='" + c.age + _
"', mobile_phone='" + c.mobile_phone + _
"', home_phone='" + c.home_phone + _
"', work_phone='" + c.work_phone + _
"', home_street='" + c.home_street + _
"', home_city='" + c.home_city + _
"', home_state='" + c.home_state + _
"', home_zip='" + c.home_zip + _
"', work_street='" + c.work_street + _
"', work_city='" + c.work_city + _
"', work_state='" + c.work_state + _
"', work_zip='" + c.work_zip + _
"', home_www='" + c.home_www + _
"', work_www='" + c.work_www + _
"', home_email='" + c.home_email + _
"', work_email='" + c.work_email + _
"' WHERE first_name='" + c.first_name + _
"' AND last_name='" + c.last_name + "'")
我收到以下错误
SQL异常了未处理
的数据类型text和varchar是在等于运算符不兼容。
我使用参数
Using conn As New SqlConnection(), _
myCommand As New SqlCommand("UPDATE Contacts SET" + _
"[email protected]_name" + _
"AND [email protected]" + _
"AND [email protected]_name" + _
"AND [email protected]" + _
"AND [email protected]_phone" + _
"AND [email protected]_phone" + _
"AND [email protected]_phone" + _
"AND [email protected]_street" + _
"AND [email protected]_city" + _
"AND [email protected]_state" + _
"AND [email protected]_zip" + _
"AND [email protected]_street" + _
"AND [email protected]_city" + _
"AND [email protected]_state" + _
"AND [email protected]_zip" + _
"AND [email protected]_www" + _
"AND [email protected]_www" + _
"AND [email protected]_email" + _
"AND [email protected]_email" + _
"WHERE [email protected]_name" + _
"AND [email protected]_name", conn)
myCommand.Parameters.Add(New SqlParameter("@first_name", c.first_name))
myCommand.Parameters.Add(New SqlParameter("@middle", c.middle))
myCommand.Parameters.Add(New SqlParameter("@last_name", c.last_name))
myCommand.Parameters.Add(New SqlParameter("@age", c.age))
myCommand.Parameters.Add(New SqlParameter("@mobile_phone", c.mobile_phone))
myCommand.Parameters.Add(New SqlParameter("@home_phone", c.home_phone))
myCommand.Parameters.Add(New SqlParameter("@work_phone", c.work_phone))
myCommand.Parameters.Add(New SqlParameter("@home_street", c.home_street))
myCommand.Parameters.Add(New SqlParameter("@home_city", c.home_city))
myCommand.Parameters.Add(New SqlParameter("@home_state", c.home_state))
myCommand.Parameters.Add(New SqlParameter("@home_zip", c.home_zip))
myCommand.Parameters.Add(New SqlParameter("@work_street", c.work_street))
myCommand.Parameters.Add(New SqlParameter("@work_city", c.work_city))
myCommand.Parameters.Add(New SqlParameter("@work_state", c.work_state))
myCommand.Parameters.Add(New SqlParameter("@work_zip", c.work_zip))
myCommand.Parameters.Add(New SqlParameter("@home_www", c.home_www))
myCommand.Parameters.Add(New SqlParameter("@work_www", c.work_www))
myCommand.Parameters.Add(New SqlParameter("@home_email", c.home_email))
myCommand.Parameters.Add(New SqlParameter("@work_email", c.work_email))
conn.Open()
myCommand.ExecuteNonQuery()
conn.Close()
End Using
试过的代码进行修改,但我仍然有初始化这个错误
ConnectionString属性尚未初始化的连接有问题。
有人可以说“Sql注入”?或''; DROP TABLE联系人; - '? – 2010-05-07 20:37:47
@Joel,只要这个网站被部署,我就可以。 – 2010-05-07 20:39:25
这可能是您的“年龄”列错误,但正如其他人所说,这应该被重写为参数化查询。 – RedFilter 2010-05-07 20:39:48