簡體   English   中英

參數化查詢中的(?,?...?)或(@ field1,@ field2 ... @ fieldn)?

[英](?,?…?) or (@field1,@field2…@fieldn) in parmeterized queries?

這是不好的編碼?

我有一個問題

INSERT INTO sometable (field1,field2...fieldn) VALUES (?,?,.....?)

然后

cmd.Parameters.Add("TOFnr", OdbcType.Int, 10).Value = orderId;
cmd.Parameters.Add("LineNr", OdbcType.Int, 10).Value = maxLineNr;
cmd.Parameters.Add("Date", OdbcType.VarChar, 8).Value = rowHeader["Date"];

該代碼有效,除了在Add周圍有一個if條件,導致該行之后的數據進入錯誤的變量。

占位符(“TOFnr”等)僅用於程序員引用,不是由sql或c#本身使用,對嗎?

在查詢中使用命名參數不是很容易出錯嗎?

INSERT INTO sometable (field1,field2...fieldn) VALUES (@TOFnr,@LineNr,.....@fieldn)

這是c#連接到odbc的borland悖論。

在查詢中使用命名參數不是很容易出錯嗎?

是的。 遺憾的是,ADO.NET ODBC驅動程序不允許在SQL語句中傳遞命名的SQL參數,因此不幸的是,使用ODBC驅動程序是不可能的。

我不是Paradox的專家,但可能有專門針對Paradox的驅動程序,它允許命名參數。 你可能會有更多的運氣。

暫無
暫無

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

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