以下は私が持っているコードです。私の人生では、クエリの何が問題なのかを理解することはできません。
私はもともと「1つ以上のパラメーターに値が指定されていません」というエラーがありましたが、消えたようです(ただし、なぜそれを取得したのかさえわかりません)。
このコードの前に接続が開かれます。パラメータ GVars.thisFY は文字列 = "FY13" です - このテーブルは確実に存在します。パラメータ GVars.currentDate は、DateTime = 今日です。
この [Destination] および [Next Collection] 範囲のレコードは確実に存在します。
string sql;
OleDbDataAdapter adapter;
sql = "SELECT * FROM @CurFY WHERE [Destination] = @Destination AND [Next Collection] BETWEEN @NextCollectionA AND @NextCollectionB;";
// Create the command object
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
// Add values to the fields
cmd.Parameters.AddWithValue("@CurFY", GVars.thisFY);
cmd.Parameters.AddWithValue("@Destination", "Henwood");
cmd.Parameters.AddWithValue("@NextCollectionA", GVars.currentDate);
cmd.Parameters.AddWithValue("@NextCollectionB", GVars.currentDate.AddDays(1));
adapter = new OleDbDataAdapter(cmd.CommandText, conn);
try
{
adapter.Fill(ds);
GVars.bLblLastUpdate = DateTime.Now.ToString("HH:mm:ss");
}
catch (Exception ex)
{
}
編集: 以下のようにテーブル パラメーターを削除するようにコードを変更しましたが、「1 つ以上のパラメーターに値が指定されていません」というメッセージが引き続き表示されますが、特定できません..
EDIT2:余分なものを削除したので、投稿は回答済みの元の質問のみに関連しています。奇妙な「値が指定されていません」エラーに対して新しい質問を作成します