Tôi cho rằng mã của bạn thực sự không hoàn toàn như đã trình bày, do nó hiện không biên dịch - bạn đang sử dụng cmdR
trước khi bạn khai báo.
Trước tiên, bạn đang cố gắng sử dụng các tham số được đặt tên và theo tài liệu của OdbcCommand.Parameters
, không được hỗ trợ:
Ngoài ra, cá nhân tôi sẽ tránh sử dụng AddWithValue
Dù sao đi nữa - tôi sẽ sử dụng một cái gì đó như:
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
}
}
}
Ví dụ này sử dụng các tên tuân theo các quy ước đặt tên .NET và thể hiện việc bố trí tài nguyên đúng cách ... cũng như khắc phục sự cố tham số.
Tôi nghĩ rằng hơi đáng tiếc khi bạn phải cung cấp tên cho tham số khi thêm nó vào lệnh mặc dù bạn không thể sử dụng nó trong truy vấn, nhưng đó là cuộc sống.