insert语句中的数据类型不匹配

时间:2013-11-23 07:47:14

标签: c# sql

我正在尝试在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() + "');";

有人知道是什么原因引起的吗?

2 个答案:

答案 0 :(得分:3)

假设:Exists列是您要存储的布尔值。

问题是最后一列是bit而不是string

这有一些问题,但这是它无法正常工作的主要原因。

另一个主要问题是你让自己处于开放状态,因此SQL注入攻击。看看你的输入参数设置以保护自己。

您可以在这里查看参数的参数化

parameterized sql query - asp.net / c#

答案 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 )+“');”;