sql >> Databasteknik >  >> RDS >> Mysql

Parameter @Name hittades inte i samlingen

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 + "%");


  1. Vad är skillnaden mellan pls_integer och binary_integer?

  2. log4j2 JDBC-hanteraren kan inte ansluta till databasen

  3. Emoji infogas inte i databasnoden js mysql

  4. C# och mysqldump