我正在尝试在SQL中执行insert语句,但是得到以下错误:
标准表达式中存在错误数据类型不匹配
这是我的疑问:
string Query = "INSERT INTO [laptop table]
(Name,Serial,Charger,Colour,Notes,Exist)
VALUES
('" + this.nametxt.Text + "','" +
this.serialtxt.Text + "','" +
this.chargertxt.Text + "','" +
this.colourtxt.Text + "','" +
this.notestxt.Text + "','" +
this.Exist.Checked.ToString() + "');";
有人知道是什么原因引起的吗?
答案 0 :(得分:3)
假设:Exists列是您要存储的布尔值。
问题是最后一列是bit
而不是string
。
这有一些问题,但这是它无法正常工作的主要原因。
另一个主要问题是你让自己处于开放状态,因此SQL注入攻击。看看你的输入参数设置以保护自己。
您可以在这里查看参数的参数化
答案 1 :(得分:1)
请检查表格的数据类型。
如果Exist列是位类型,那么您的Query应该像
string Query =“INSERT INTO [laptop table](Name,Serial,Charger,Color,Notes,Exist)VALUES('”this this.nametxt.Text +“','”+ this.serialtxt.Text +“ ','“+ this.chargertxt.Text +”','“+ this.colourtxt.Text +”','“+ this.notestxt.Text +”','“+ Convert.ToBoolean(this.Exist.Checked )+“');”;