sql >> Database >  >> RDS >> Mysql

select query werkt niet met parameters die gebruik maken van Parameters.AddWithValue

Ik neem aan dat je code eigenlijk niet helemaal is zoals gepresenteerd, aangezien het momenteel niet zou compileren - u gebruikt cmdR voordat je het declareert.

Ten eerste probeert u benoemde parameters te gebruiken, en volgens de documentatie van OdbcCommand.Parameters , dat wordt niet ondersteund:

Bovendien zou ik persoonlijk het gebruik van AddWithValue vermijden hoe dan ook - ik zou zoiets gebruiken als:

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

In dit voorbeeld worden namen gebruikt die de .NET-naamgevingsconventies volgen en laten zien hoe bronnen op de juiste manier worden weggegooid... en het parameterprobleem wordt opgelost.

Ik vind het een beetje jammer dat je een naam voor de parameter moet opgeven wanneer je deze aan de opdracht toevoegt, ook al kun je deze niet in de query gebruiken, maar zo is het leven.



  1. Vind alle zoekopdrachten die een bepaalde tabel gebruiken

  2. Dynamische SQL - EXEC(@SQL) versus EXEC SP_EXECUTESQL(@SQL)

  3. Hoe de volgende rijen te groeperen op niet-unieke waarde

  4. Doorgaan met invoegingen in Oracle wanneer er een uitzondering wordt gemaakt