Presumo que seu código não seja muito como apresentado, dado que não seria compilado no momento - você está usando
cmdR
antes de declará-lo. Primeiro, você está tentando usar parâmetros nomeados e de acordo com a documentação de
OdbcCommand.Parameters
, que não é compatível:Além disso, eu pessoalmente evitaria usar
AddWithValue
de qualquer maneira - eu usaria algo como: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
}
}
}
Este exemplo usa nomes que seguem as convenções de nomenclatura .NET e demonstra o descarte adequado de recursos... bem como a correção do problema de parâmetro.
Eu acho que é um pouco lamentável que você tenha que fornecer um nome para o parâmetro ao adicioná-lo ao comando, mesmo que você não possa usá-lo na consulta, mas essa é a vida.