Předpokládám, že váš kód ve skutečnosti není úplně jak je uvedeno, vzhledem k tomu, že by se aktuálně nezkompiloval - používáte cmdR
než to prohlásíte.
Nejprve se pokoušíte použít pojmenované parametry a podle dokumentace OdbcCommand.Parameters
, který není podporován:
Kromě toho bych se osobně vyhnul použití AddWithValue
každopádně - použil bych něco jako:
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
}
}
}
Tento příklad používá názvy podle konvencí pojmenování .NET a ukazuje správné nakládání se zdroji... a také řešení problému s parametry.
Myslím, že je trochu nešťastné, že při přidávání parametru do příkazu musíte zadat název parametru, i když jej nemůžete použít v dotazu, ale takový je život.