Mysql
 sql >> Base de données >  >> RDS >> Mysql

la requête select ne fonctionne pas avec les paramètres utilisant Parameters.AddWithValue

Je suppose que votre code n'est en fait pas tout à fait tel que présenté, étant donné qu'il ne compilerait pas actuellement - vous utilisez cmdR avant de le déclarer.

Tout d'abord, vous essayez d'utiliser des paramètres nommés, et selon la documentation de OdbcCommand.Parameters , qui n'est pas pris en charge :

De plus, j'éviterais personnellement d'utiliser AddWithValue de toute façon - j'utiliserais quelque chose comme :

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

Cet exemple utilise des noms suivant les conventions de dénomination .NET et montre comment disposer correctement des ressources... ainsi que résoudre le problème de paramètre.

Je pense qu'il est légèrement regrettable que vous deviez fournir un nom pour le paramètre lorsque vous l'ajoutez à la commande même si vous ne pouvez pas l'utiliser dans la requête, mais telle est la vie.