2016-12-25 8 views
1

エラー返さ:"1つまたは複数の必須パラメータに値が指定されていません。 Select AccessのC#のシンプル

"は値が1つ以上の必要なパラメータのために与えられていません"関数に渡す

文字列配列:IDの

String[,] arrParams = new String[1, 2] { 
         {"@ToUpper_user_id", id} 
       }; 

値:

"test" (without the quotes) 

SQL:

strSQL = "select * from users where ToUpper_user_id = ?;"; 

SQL関数呼び出し:DBからデータを取得するために呼び出す

if (jdb.getdb_data(strSQL, arrParams, strTableName, out dsGet, out strTechMessage)) 
{ 
    ... 
} 

機能:

public static bool getdb_data(String strSQL, String[,] arrParams, String strTableName, out DataSet dsGet, out String strTechMessage) 
    { 
     bool boolRC = true; 
     String key = String.Empty; 
     String val = String.Empty; 

     dsGet = new DataSet(); 
     strTechMessage = String.Empty; 
     String strSQL_Empty = String.Empty; 

     string connectionString = jdb.getConnString(); 

     using (OleDbConnection connection = 
      new OleDbConnection(connectionString)) 
     { 
      OleDbCommand command = new OleDbCommand(strSQL, connection); 

      if (arrParams.GetLength(0) > 0) 
      { 
       for (int i = 0; i < arrParams.GetLength(0); i++) 
       { 
        for (int j = 0; j < arrParams.GetLength(1); j++) 
        { 
         if (j.Equals(0)) { key = arrParams[i, j]; } 
         if (j.Equals(1)) { val = arrParams[i, j]; } 
        } 

        command.Parameters.AddWithValue(key, val); 
       } 
      } 
      else 
      { 
       boolRC = false; 
       strTechMessage = "No parameters found"; 
      } 

      // Open the connection in a try/catch block. 
      // Create and execute the DataReader, writing the result 
      // set to the console window. 
      if (boolRC) 
      { 
       try 
       { 
        connection.Open(); 

        OleDbDataAdapter adapter = new OleDbDataAdapter(strSQL, connection); 

        adapter.Fill(dsGet, strTableName); 
       } 
       catch (Exception ex) 
       { 
        boolRC = false; 
        strTechMessage = ex.Message; 
       } 
      } 

     } 

     return boolRC; 
    } 

助けてください - 私は非常識やったと思います! (。。。。パラメータで更新CRUDは、すべての作品だけを選択したコードは私にエラーを与えている)

+1

本当にToUpper_user_idという名前の列がありますか? – Steve

+0

これを修正すると、あなたの将来に 'datatype mismatch'エラーが表示されます。 – Plutonix

答えて

0

で「get_dbdata(...)」上記の、私が持っていた持っている必要があります。

OleDbDataAdapter adapter = new OleDbDataAdapter(command); 

代わりに:コードで

OleDbDataAdapter adapter = new OleDbDataAdapter(strSQL, connection); 

、SQLおよびパラメータの両方は既に上記のコマンドに追加されています。

今すぐダウンロード!

関連する問題