Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nie znaleziono parametru @Name w kolekcji

Musisz dodać parametry przed określeniem wartości:

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

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

Rozważ użycie alternatywnej składni:

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

Krótki przykład każdego z nich można znaleźć na Właściwość SqlCommand.Parameters strona w witrynie MSDN.

Ponadto zrobiłeś coś dziwnego z ciągiem zapytania. To powinno to naprawić:

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

Aby uzyskać LIKE aby działać poprawnie, prawdopodobnie będziesz musiał dodać % symbole wokół wartości parametrów podczas ich dodawania:

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

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Atomic UPDATE w InnoDB vs MyISAM

  2. HTML - Zmień\Aktualizuj zawartość strony bez odświeżania\przeładowania strony

  3. Jak usunąć użytkownika bazy danych MySQL w cPanel?

  4. Ile pamięci zajmie wartość null w DB?

  5. Procedura składowana MySQL wstawia wiele wierszy z listy