sql >> Database teknologi >  >> RDS >> Mysql

Parameter @Name ikke fundet i samlingen

Du skal tilføje parametrene, før du angiver en værdi:

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

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

Overvej at bruge denne alternative syntaks:

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

Du kan finde et kort eksempel på hver enkelt på SqlCommand.Parameters Property side på MSDN.

Du har også lavet noget funky med forespørgselsstrengen. Dette burde løse 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;";

For at få LIKE For at fungere korrekt, skal du sandsynligvis tilføje % symboler omkring dine parameterværdier, når du tilføjer dem:

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

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


  1. Now() vs GetDate()

  2. MySql Ændret forudbestillingstræ for at oprette url

  3. flere SQL-tabeller med PHP til at generere sitemap

  4. Hvordan laver man LEFT JOIN med mere end 2 borde?