簡體   English   中英

為什么我得到OleDBException“沒有給出一個或多個必需參數的值?”

[英]Why am I getting OleDBException “No value given for one or more required parameters?”

這是我的代碼:

command.CommandText = 
   "SELECT DISTINCT B.* FROM BlankFormSubmissions B, Actions A WHERE B.FormName = " + 
   GenericRoutines.SqlFmt(form.Name) + 
   " AND B.ProcessName = A.ProcessName AND B.ActionName = A.ActionName" +
   " ORDER BY B.ID";

OleDbDataReader reader = command.ExecuteReader();

SQL是:

SELECT DISTINCT B.* 
FROM BlankFormSubmissions B, Actions A 
WHERE B.FormName = 'FindingNemo' 
  AND B.ProcessName = A.ProcessName 
  AND B.ActionName = A.ActionName 
ORDER BY B.ID

我發現通過在Access中運行SQL,我實際上只是引用了Access表中不存在的列(FormName)。

您需要引用您傳遞給查詢的任何字符串。 嘗試:

command.CommandText = "SELECT DISTINCT B.* FROM BlankFormSubmissions B, Actions A WHERE B.FormName = '" + 
        GenericRoutines.SqlFmt(form.Name) + "' AND B.ProcessName = A.ProcessName AND B.ActionName = A.ActionName" +
        " ORDER BY B.ID";

它更容易(一旦你克服了涉及的小學習曲線)和更好(更整潔,更安全)使用參數化查詢存儲過程來做這種事情。

HTH。

暫無
暫無

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

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