あなたのコードは実際には完全ではないと思います 提示されているように、現在コンパイルされていないことを考えると、cmdR
を使用しています 宣言する前に。
まず、名前付きパラメーターを使用しようとしています。 OdbcCommand.Parameters
、サポートされていません:
さらに、私は個人的にAddWithValue
の使用を避けます とにかく-私は次のようなものを使用します:
string sql = "select * from user_tbl where emp_id = ? and birthdate = ?";
using (var connection = new OdbcConnection(...))
{
connection.Open();
using (var command = new OdbcCommand(sql, connection))
{
command.Parameters.Add("@emp_id", OdbcType.Int).Value = userValidate.EmployeeId;
command.Parameters.Add("@birthdate", OdbcType.Date).Value = userValidate.BirthDate;
using (var reader = command.ExecuteReader())
{
// Use the reader here
}
}
}
この例では、.NETの命名規則に従った名前を使用し、リソースの適切な処理とパラメーターの問題の修正を示しています。
クエリで使用できない場合でも、コマンドにパラメータを追加するときにパラメータの名前を指定する必要があるのは少し残念だと思いますが、それは人生です。