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

Parametr @Name nebyl v kolekci nalezen

Před zadáním hodnoty musíte přidat parametry:

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

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

Zvažte použití této alternativní syntaxe:

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

Krátký příklad každého z nich najdete na Vlastnost SqlCommand.Parameters na stránce MSDN.

Také jste udělali něco zvláštního s řetězcem dotazu. Tohle by to mělo opravit:

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;";

Chcete-li získat LIKE Aby fungoval správně, budete pravděpodobně muset přidat % symboly kolem hodnot parametrů, když je přidáváte:

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

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


  1. Seskupit MySQL podle po sobě jdoucích hodnot

  2. Rekurzivní menu s php a MySQLi

  3. jak používat funkci require_once inside

  4. Povolení Laravel odepřeno na vzdáleném serveru Mysql (AWS aurora)