Presumo che il tuo codice in realtà non sia abbastanza come presentato, dato che al momento non verrebbe compilato:stai usando cmdR
prima di dichiararlo.
Innanzitutto, stai tentando di utilizzare parametri denominati e in base alla documentazione di OdbcCommand.Parameters
, che non è supportato:
Inoltre, eviterei personalmente di usare AddWithValue
comunque - userei qualcosa come:
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
}
}
}
Questo esempio utilizza i nomi che seguono le convenzioni di denominazione .NET e mostra come smaltire correttamente le risorse... oltre a risolvere il problema dei parametri.
Penso che sia un po' sfortunato che tu debba fornire un nome per il parametro quando lo aggiungi al comando anche se non puoi usarlo nella query, ma questa è la vita.