Insert Statement显示错误"语法不正确="

时间:2014-04-12 20:24:10

标签: c# sql

我正在尝试将checkboxlist的值插入到事务表中,但它显示错误

  

Incorrect Syntax Near' ='。

if (cblAmenity.SelectedIndex >= 0)
{
    for (int i = 0; i < cblAmenity.Items.Count; i++)
    {
        if (cblAmenity.Items[i].Selected)
        {
            ds = obj.sel("Select MAX(PropertyId) AS PrptId from tblPropertyMaster");
            string a = ds.Tables[0].Rows[0]["PrptId"].ToString();
            string nature = "Sell";
            obj.insert("insert into tblAmenityToPropertyTransaction Values (AmenityName=" + i + " , PropertyId=" + a + " , Nature='" + nature + "')");
        }
    }
}

任何帮助表示感谢。

3 个答案:

答案 0 :(得分:4)

在sql server中INSERT INTO不会以这种方式工作

 INSERT INTO table VALUES(value1, value2, value3)

不是

 INSERT INTO table VALUES(field=value, field1=value1....)

但是,除此之外,请尝试始终使用参数化查询 在您错误的语法中,您使用字符串连接来构建命令,但是当您的字符串中连接的值包含无效字符(例如字符串中的单引号)时,这是Sql Injection的一扇门和infinte的问题源)

答案 1 :(得分:0)

您使用了错误的INSERT语句语法

示例插入语句

insert into table1(col1, col2)
values (val1,val2);

你的陈述应该是

"insert into tblAmenityToPropertyTransaction (AmenityName,PropertyId, Nature)
Values (" + i + " ," + a + " , '" + nature + "')"

请使用parameterized SQL statements

答案 2 :(得分:0)

您可以使用以下代码:

Insert into tblAmenityToPropertyTransaction (AmenityName,PropertyId, Nature) Values (" + i + " ," + a + " , '" + nature + "')"