首頁 > 後端開發 > C++ > 使用文字指令時,為什麼 OleDbCommand 中的參數順序很重要?

使用文字指令時,為什麼 OleDbCommand 中的參數順序很重要?

Mary-Kate Olsen
發布: 2024-12-26 15:38:16
原創
905 人瀏覽過

Why Does Parameter Order Matter in OleDbCommand When Using Text Commands?

OleDbCommand 參數順序與優先權

在嘗試偵錯查詢時,發現 OleDbCommand 中的參數順序會影響結果。當亂序加入參數時:

cmd.Parameters.Add("@dtDebut", OleDbType.Date).Value = dateTraitementDebut;
cmd.Parameters.Add("@dtFin", OleDbType.Date).Value = dateTraitementFin;
cmd.Parameters.Add("@id", OleDbType.Integer).Value = idSociete;
登入後複製

沒有回傳結果。但是,當參數依照查詢中出現的順序加入時:

cmd.Parameters.Add("@id", OleDbType.Integer).Value = idSociete;
cmd.Parameters.Add("@dtDebut", OleDbType.Date).Value = dateTraitementDebut;
cmd.Parameters.Add("@dtFin", OleDbType.Date).Value = dateTraitementFin;
登入後複製

查詢正常運作。

這個差異源自於 OleDbCommand 不支援命名的事實文字指令的參數。如 MSDN 上所述:

當 CommandType 設定為 Text 時,OLE DB .NET 提供者不支援將參數傳遞給 SQL 語句或 OleDbCommand 呼叫的預存程序的命名參數。在這種情況下,必須使用問號 (?) 佔位符。

因此,在 OleDbCommand 中使用文字指令時,參數會新增到集合中的順序至關重要。此順序必須直接對應於命令文字中佔位符問號的順序。

以上是使用文字指令時,為什麼 OleDbCommand 中的參數順序很重要?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板