値を指定する前にパラメータを追加する必要があります:
mySqlCommand.Parameters.Add("@AreaName", SqlDbType.VarChar);
mySqlCommand.Parameters["@AreaName"].Value =
(string.IsNullOrEmpty(Convert.ToString(PModel.AreaName))
? (object)DBNull.Value : PModel.AreaName));
次の代替構文の使用を検討してください:
mySqlCommand.Parameters.AddWithValue("@AreaName",
(string.IsNullOrEmpty(Convert.ToString(PModel.AreaName))
? (object)DBNull.Value : PModel.AreaName));
それぞれの簡単な例は、SqlCommand.Parametersプロパティ MSDNのページ。
また、クエリ文字列で何かファンキーなことをしました。これで修正されるはずです:
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;";
LIKE
を取得するには ■正しく機能するには、おそらく%
を追加する必要があります パラメータ値を追加するときのパラメータ値の周りの記号:
var areaName = (string.IsNullOrEmpty(Convert.ToString(PModel.AreaName))
? (object)DBNull.Value : PModel.AreaName)
mySqlCommand.Parameters.AddWithValue("@AreaName", "%" + areaName + "%");