2010-04-23 168 views
1

我有一個名爲SubMaster_Accounts的表,其中包含9個字段。我想在其中插入數據到一些領域,我想存儲一些其他字段爲NULL。我試圖用查詢字符串編寫查詢,當我插入所有字段的數據時,sql查詢完美工作,但是當我將數據作爲NULL插入某些字段時,它在插入命令中顯示語法錯誤。我想插入爲NULL的字段不是約束。c#oledb中的INSERT INTO語句中的語法錯誤?

我該怎麼辦?

這是我的查詢字符串。

insert into SubMaster_Account ([SMcode], [MSname], [Sname], [Openbalrs], 
[Openbalrs1], [Openbalmet], [Openbalmet1], [Creditdays], [Sdesc]) 
values ('" + SMcode + "','" + MSname + "','" + Sname + "'," + 
Openbalrs + ",'" + Openbalrs1 + "'," + Openbalmet + ",'" + 
Openbalmet1 + "'," + Creditdays + ",'" + Sdesc + "') 
+0

接受答案,如果它爲你工作 – 2010-07-31 05:01:33

回答

1

您應該更改查詢以使用參數而不是內聯文字。

使用您當前的方法,您可能會遇到SQL注入攻擊(如果有來自用戶的任何值)。

容易出現SQL語法錯誤,正如你經歷過的,如果你嘗試在它們中使用任何帶有單引號的值,或者什麼都沒有。

這些問題消失了參數。

+0

誰繼續教這些東西!?應當教授noobs如何從第1天開始使用參數化查詢。 – 2010-04-23 05:46:19

+0

不幸的是,這是一個事實的人爲現象,SQL通常在沒有編程語言的情況下被教授,而當你使用編程語言時,必須編寫SQL在一個字符串中,因此當你周圍添加改變字符串的東西時,回到字符串連接是很自然的。 – 2010-04-23 05:52:17

相關問題