Ik neem aan dat je code eigenlijk niet helemaal is zoals gepresenteerd, aangezien het momenteel niet zou compileren - u gebruikt cmdR
voordat je het declareert.
Ten eerste probeert u benoemde parameters te gebruiken, en volgens de documentatie van OdbcCommand.Parameters
, dat wordt niet ondersteund:
Bovendien zou ik persoonlijk het gebruik van AddWithValue
vermijden hoe dan ook - ik zou zoiets gebruiken als:
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
}
}
}
In dit voorbeeld worden namen gebruikt die de .NET-naamgevingsconventies volgen en laten zien hoe bronnen op de juiste manier worden weggegooid... en het parameterprobleem wordt opgelost.
Ik vind het een beetje jammer dat je een naam voor de parameter moet opgeven wanneer je deze aan de opdracht toevoegt, ook al kun je deze niet in de query gebruiken, maar zo is het leven.