Du måste lägga till parametrarna innan du anger ett värde:
mySqlCommand.Parameters.Add("@AreaName", SqlDbType.VarChar);
mySqlCommand.Parameters["@AreaName"].Value =
(string.IsNullOrEmpty(Convert.ToString(PModel.AreaName))
? (object)DBNull.Value : PModel.AreaName));
Överväg att använda den här alternativa syntaxen:
mySqlCommand.Parameters.AddWithValue("@AreaName",
(string.IsNullOrEmpty(Convert.ToString(PModel.AreaName))
? (object)DBNull.Value : PModel.AreaName));
Du kan hitta ett kort exempel på var och en på SqlCommand.Parameters Property sida på MSDN.
Dessutom har du gjort något kul med frågesträngen. Detta borde fixa det:
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;";
För att få LIKE
För att fungera korrekt måste du förmodligen lägga till %
symboler runt dina parametervärden när du lägger till dem:
var areaName = (string.IsNullOrEmpty(Convert.ToString(PModel.AreaName))
? (object)DBNull.Value : PModel.AreaName)
mySqlCommand.Parameters.AddWithValue("@AreaName", "%" + areaName + "%");