Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Parameter @Name nicht in der Sammlung gefunden

Sie müssen die Parameter hinzufügen, bevor Sie einen Wert angeben:

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

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

Erwägen Sie die Verwendung dieser alternativen Syntax:

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

Sie finden jeweils ein kurzes Beispiel unter SqlCommand.Parameters-Eigenschaft Seite bei MSDN.

Außerdem haben Sie etwas Ungewöhnliches mit der Abfragezeichenfolge gemacht. Dies sollte es beheben:

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

Um den LIKE zu erhalten Damit es richtig funktioniert, müssen Sie wahrscheinlich % hinzufügen Symbole um Ihre Parameterwerte, wenn Sie sie hinzufügen:

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

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