sql >> Database teknologi >  >> RDS >> Mysql

select query virker ikke med parametre ved hjælp af Parameters.AddWithValue

Jeg går ud fra, at din kode faktisk ikke er helt som præsenteret, givet at det i øjeblikket ikke ville kompilere - du bruger cmdR før du erklærer det.

For det første forsøger du at bruge navngivne parametre, og ifølge dokumentationen fra OdbcCommand.Parameters , som ikke understøttes:

Derudover ville jeg personligt undgå at bruge AddWithValue alligevel - jeg ville bruge noget 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
        }
    }
}

Dette eksempel bruger navne, der følger .NET-navnekonventioner, og demonstrerer korrekt bortskaffelse af ressourcer... samt løsning af parameterproblemet.

Jeg synes, det er lidt uheldigt, at du skal angive et navn til parameteren, når du tilføjer den til kommandoen, selvom du ikke kan bruge den i forespørgslen, men sådan er livet.



  1. MySQL Tæl forskellige værdier fra én kolonne

  2. Konvertering af tal til ord i MYSQL-resultat! Brug af Query

  3. Diff. mellem datoer - SQL plus

  4. Aktiver SQL Server Agent via SSMS