sql >> Databasteknik >  >> RDS >> Mysql

select query fungerar inte med parametrar som använder Parameters.AddWithValue

Jag antar att din kod faktiskt inte är helt som presenterat, med tanke på att det för närvarande inte skulle kompileras - du använder cmdR innan du deklarerar det.

Först försöker du använda namngivna parametrar, och enligt dokumentationen för OdbcCommand.Parameters , som inte stöds:

Dessutom skulle jag personligen undvika att använda AddWithValue hur som helst - jag skulle använda något som:

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
        }
    }
}

Det här exemplet använder namn som följer .NET-namnkonventioner och visar hur resurserna kasseras på rätt sätt... samt åtgärdar parameterproblemet.

Jag tycker att det är lite olyckligt att du måste ange ett namn för parametern när du lägger till den i kommandot även om du inte kan använda den i frågan, men så är livet.



  1. Skapar associativ array på paketnivå i java

  2. Tillämpa OFFSET och LIMIT i ORACLE för komplexa anslutningsfrågor?

  3. Sail.js flera anslutningar vid start

  4. Övervaka sidans förväntade livslängd i SQL Server