Saya akan menganggap kode Anda sebenarnya tidak cukup seperti yang disajikan, mengingat saat ini tidak dapat dikompilasi - Anda menggunakan cmdR
sebelum Anda menyatakannya.
Pertama, Anda mencoba menggunakan parameter bernama, dan menurut dokumentasi OdbcCommand.Parameters
, yang tidak didukung:
Selain itu, saya pribadi akan menghindari penggunaan AddWithValue
anyway - saya akan menggunakan sesuatu seperti:
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
}
}
}
Contoh ini menggunakan nama yang mengikuti konvensi penamaan .NET, dan menunjukkan pembuangan sumber daya dengan benar... serta memperbaiki masalah parameter.
Saya pikir agak disayangkan bahwa Anda harus memberikan nama untuk parameter saat menambahkannya ke perintah meskipun Anda tidak dapat menggunakannya dalam kueri, tetapi begitulah kehidupan.