2014-04-12 114 views
-1

我試圖插入的CheckBoxList的值到交易表,但它顯示我的錯誤INSERT語句顯示錯誤「附近有語法錯誤=」

不正確的語法附近「=」。

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 + "')"); 
     } 
    } 
} 

讚賞任何幫助。

+1

那不是正確的語法 –

+0

什麼是'obj'類型? –

回答

4

INSERT INTO在SQL Server不以這種方式

INSERT INTO table VALUES(value1, value2, value3) 

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

然而,除了這一點,儘量始終使用參數化查詢工作。
以錯誤的語法使用字符串連接來構建您的命令,但這是Sql Injection的敞開大門,當您的字符串中的值連接起來包含無效字符(例如字符串內的單引號)時,會出現問題的來源

+0

呵呵sosorry先生,即使我已經完成了這麼多時間,根據你的語法,我只是忘記插入語句的語法,因爲沮喪:( – Chiraag

+0

好奇的是,這樣的語法是由MySql支持的 – Steve

0

您正在使用錯誤的INSERT語句的語法,

例Insert語句

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

你的說法應該是

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

而且請使用parameterized SQL statements

0

您可以使用下面的代碼:

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