sql >> Databáze >  >> RDS >> Mysql

výběrový dotaz nefunguje s parametry pomocí Parameters.AddWithValue

Předpokládám, že váš kód ve skutečnosti není úplně jak je uvedeno, vzhledem k tomu, že by se aktuálně nezkompiloval - používáte cmdR než to prohlásíte.

Nejprve se pokoušíte použít pojmenované parametry a podle dokumentace OdbcCommand.Parameters , který není podporován:

Kromě toho bych se osobně vyhnul použití AddWithValue každopádně - použil bych něco jako:

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

Tento příklad používá názvy podle konvencí pojmenování .NET a ukazuje správné nakládání se zdroji... a také řešení problému s parametry.

Myslím, že je trochu nešťastné, že při přidávání parametru do příkazu musíte zadat název parametru, i když jej nemůžete použít v dotazu, ale takový je život.



  1. Levé spojení nedává hodnoty null v tabulce sql

  2. Mysql naformátujte řetězec jako XXXXXXXXXXXX až XX-XX-XXXXXXX-X

  3. Správné použití php mysqli autocommit a rollback

  4. Jak mohu spustit součty z druhého sloupce