sql >> Database >  >> RDS >> Mysql

Parameter @Name niet gevonden in de collectie

U moet de parameters toevoegen voordat u een waarde opgeeft:

mySqlCommand.Parameters.Add("@AreaName", SqlDbType.VarChar);

mySqlCommand.Parameters["@AreaName"].Value =
    (string.IsNullOrEmpty(Convert.ToString(PModel.AreaName))
        ? (object)DBNull.Value : PModel.AreaName));

Overweeg deze alternatieve syntaxis te gebruiken:

mySqlCommand.Parameters.AddWithValue("@AreaName",
    (string.IsNullOrEmpty(Convert.ToString(PModel.AreaName))
        ? (object)DBNull.Value : PModel.AreaName));

U kunt een kort voorbeeld van elk vinden op de SqlCommand.Parameters-eigenschap pagina op MSDN.

Je hebt ook iets funky gedaan met de querystring. Dit zou het moeten oplossen:

mySqlCommand.CommandText =
    "SELECT * FROM PlantAreaCodes WHERE (AreaCode IS NULL OR AreaCode LIKE @AreaCode OR AreaName IS NULL OR AreaName LIKE @AreaName OR Comments IS NULL OR Comments LIKE @Comment;";

Om de LIKE . te krijgen s om correct te werken, moet u waarschijnlijk % . toevoegen symbolen rond uw parameterwaarden wanneer u ze toevoegt:

var areaName = (string.IsNullOrEmpty(Convert.ToString(PModel.AreaName))
                   ? (object)DBNull.Value : PModel.AreaName)

mySqlCommand.Parameters.AddWithValue("@AreaName", "%" + areaName + "%");


  1. MySQL 8 - Verwijder alle opgeslagen procedures in een specifieke database

  2. PHP password_verify werkt niet tegen database

  3. Is er een verschil tussen varchar(10) en varchar(1000) wanneer we een string opslaan waarvan de lengte kleiner is dan 10?

  4. Zijn er opties voor een join-tafel voor veel-op-veel verenigingen?