簡體   English   中英

','附近的語法不正確。 SQL Server和C#

[英]Incorrect syntax near ','. SQL Server and c#

我有一個例外:

','附近的語法不正確。

在以下查詢中:請幫助。

我已經以多種方式嘗試過,但是它不起作用。 即使我嘗試插入單個值,我仍然會遇到此異常。

cmd = new SqlCommand("insert into purchaseOrder_master(sup_id,po_date,required_date,tot_amt,uid,potime) values("+supid.Text +",'"+podate.Value.Date+"','"+reqdate.Value.Date+"',"+pocost.Text +","+uid.Text +",'"+potime.Value.TimeOfDay  +"')", con);

我們必須多久重復一次,您應該使用參數化查詢?

using (SqlCommand cmd = new SqlCommand("insert into table (column) values (@param)", conn))
{
  cmd.Parameters.AddWithValue("@param", value);
  cmd.ExecuteNonQuery();
}

您的代碼存在以下問題:

  1. 廣泛接受SQL注入
  2. DateTime值將無法正確處理(可能現在是問題)
  3. 字符串必須正確處理(引號)
cmd = new SqlCommand("insert into PurchaseOrder_master(sup_id) values(@val)", con);    
cmd.parameters.AddWithValue("@val", supid.Text );

請同時檢查日期的數據類型。 看來您為此只傳遞了字符串。 如果是日期時間,則需要將字符串解析為datetime。 對於該轉換用途,

 DateTime.Parse("stringValue");

如果要不使用命令參數保存它,則轉換日期值並按上述進行檢查。

檢查您的實際 SQL字符串。

您的值之一可能是空字符串。

那,以及托爾斯滕所說的。 使用參數化查詢。

更改

"+uid.Text +"

'"+uid.Text +"'

"+supid.Text +"

'"+supid.Text +"'

以便

values("+supid.Text +",'"+podate.Value.Date+"','"+reqdate.Value.Date+"',"+pocost.Text +","+uid.Text +",'"+potime.Value.TimeOfDay  +"')

values('"+supid.Text +"','"+podate.Value.Date+"','"+reqdate.Value.Date+"',"+pocost.Text +",'"+uid.Text +"','"+potime.Value.TimeOfDay  +"')

我相信問題是您將字符串放在插入語句中而沒有“'”符號

嘗試:

cmd = new SqlCommand("insert into purchaseOrder_master(sup_id,po_date,required_date,tot_amt,uid,potime) values("+supid.Text +",'"+podate.Value.Date+"','"+reqdate.Value.Date+"','"+pocost.Text +"','"+uid.Text +"','"+potime.Value.TimeOfDay  +"')", con);

如您在此處閱讀的內容,在執行插入語句時,每個字符串都必須用“'”括起來

嘗試調試您的代碼,並檢查查詢的確切形式。

我也認為可能的原因是

insert into purchaseOrder_master(sup_id,po_date,required_date,tot_amt,**uid**,potime

uid是一個關鍵字。 將其替換為[uid]並檢查

您的變量中有一個string.empty。 突然您生成以下命令:插入purchaseOrder_master(sup_id,po_date,required_date,tot_amt,uid,potime)值('value1','value2','value3'...

您可以使用string.format格式化命令

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM