Anda perlu menambahkan parameter sebelum menentukan nilai:
mySqlCommand.Parameters.Add("@AreaName", SqlDbType.VarChar);
mySqlCommand.Parameters["@AreaName"].Value =
(string.IsNullOrEmpty(Convert.ToString(PModel.AreaName))
? (object)DBNull.Value : PModel.AreaName));
Pertimbangkan untuk menggunakan sintaks alternatif ini:
mySqlCommand.Parameters.AddWithValue("@AreaName",
(string.IsNullOrEmpty(Convert.ToString(PModel.AreaName))
? (object)DBNull.Value : PModel.AreaName));
Anda dapat menemukan contoh singkat masing-masing di Properti SqlCommand.Parameters halaman di MSDN.
Juga, Anda telah melakukan sesuatu yang funky dengan string kueri. Ini harus memperbaikinya:
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;";
Untuk mendapatkan LIKE
s untuk bekerja dengan benar, Anda mungkin harus menambahkan %
simbol di sekitar nilai parameter saat Anda menambahkannya:
var areaName = (string.IsNullOrEmpty(Convert.ToString(PModel.AreaName))
? (object)DBNull.Value : PModel.AreaName)
mySqlCommand.Parameters.AddWithValue("@AreaName", "%" + areaName + "%");