さて、多分私はこれを間違って回っています。我々は見るであろう。
だから私がチェックしているいくつかのデータがあります。このデータはタイプInt32になります。多かれ少なかれ、アイテムが私の旗の1つではなかった場合、私はそれをとして設定したかったとDBNull.value
思います。
私が判断しようとしているのは、列がnull許容であるということです。したがって、何も入力しない場合は、nullに設定されます。
これが私のプログラムロジックです:
int content = 5; //set for sake of program;
int test;
if( content == 5){
test = content;
}else{
//i want test to be labeled as DBNULL.
//didnt know if i could redefine here to be like:
// free(test); DBNull test = new DBNull;
}
//my companys db command
CommandFactory cmd = new CommandFactory();
cmd.commandText = "insert into TABLE ( value ) values ( @a )";
cmd.addInputParameters("@a", test, DBType.Int32);
...
この場合、どのようにdbnullになりますか?次のようになります:
if(test != -1){
cmd.addInputParameters("@a", test, DBType.Int32);
}
//no param would be entered for @a, maybe forcing it to be null?
テーブルの定義では、値はnull許容であるため、それについて心配する必要はありません。
正解は掲載されていますが、同僚が私に「魔法」をしてほしくないので、それは私が最終的に使用したものではありません。
int? temp;
if(temp.HasValue){
cmd.addInputParameters("@a", temp, DBType.Int32);
}else{
cmd.addInputParameters("@a", DBNull.Value, DBType.Int32);
}