ユーザー アカウントを格納する MySql データベースにテーブルがあります。列の 1 つである expires には有効期限が格納されますが、デフォルトは NULL です。有効期限を削除してデフォルト値に戻す必要があります。
現在、私の CRUD ルーチンはすべて、MySqlCommand とパラメーターを使用して記述されています。これは MySqlParameter で直接行うことができますか? それとも、この不測の事態を処理するために別のコマンド オブジェクトを作成する必要がありますか?
ユーザー アカウントを格納する MySql データベースにテーブルがあります。列の 1 つである expires には有効期限が格納されますが、デフォルトは NULL です。有効期限を削除してデフォルト値に戻す必要があります。
現在、私の CRUD ルーチンはすべて、MySqlCommand とパラメーターを使用して記述されています。これは MySqlParameter で直接行うことができますか? それとも、この不測の事態を処理するために別のコマンド オブジェクトを作成する必要がありますか?
問題はDBNullで、次のことを行いました:
command.Parameters.AddWithValue("@parameter", null);
コンパイルOK。
あなたが話している条件は明らかではありません。列をデフォルト値に設定する場合は、DbNull.Valueを使用できます。
command.AddWithValue("@param", DbNull.Value);
or
command.Parameters.Add("@param", <data type>).Value = DBNull.Value;
私は通常、デフォルト/空白にすることを目的とした値をコードで null に設定し、クエリを実行する前に、次のループを実行します。
foreach(MySqlParameter param in cmd.Parameters)
if (param.Value == null) param.Value = DBNull.Value;