मैं मान लूंगा कि आपका कोड वास्तव में काफी नहीं है जैसा प्रस्तुत किया गया है, यह देखते हुए कि यह वर्तमान में संकलित नहीं होगा - आप cmdR
. का उपयोग कर रहे हैं इससे पहले कि आप इसे घोषित करें।
सबसे पहले, आप नामित पैरामीटर का उपयोग करने का प्रयास कर रहे हैं, और OdbcCommand.Parameters
, जो समर्थित नहीं है:
इसके अतिरिक्त, मैं व्यक्तिगत रूप से AddWithValue
. का उपयोग करने से बचूंगा वैसे भी - मैं कुछ इस तरह का उपयोग करूंगा:
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
}
}
}
यह उदाहरण .NET नामकरण सम्मेलनों के बाद नामों का उपयोग करता है, और संसाधनों का ठीक से निपटान करता है... साथ ही साथ पैरामीटर समस्या को ठीक करता है।
मुझे लगता है कि यह थोड़ा दुर्भाग्यपूर्ण है कि आपको इसे कमांड में जोड़ते समय पैरामीटर के लिए एक नाम प्रदान करना होगा, भले ही आप इसे क्वेरी में उपयोग नहीं कर सकते, लेकिन ऐसा ही जीवन है।