如何在不检查null或0的情况下为sqlparameter NULL值赋值?

Dex*_*ers 3 c# database dbnull sqlcommand

需要进行以下检查以检查空值.我有办法直接做到吗?

 if(node.ID==0)
 {
   cmd.Parameters["@ID"].Value = DBNull.Value;
 }
  else
  {
    cmd.Parameters["@ID"].Value = node.ID;
  }
Run Code Online (Sandbox Code Playgroud)

有没有办法我们可以通过这个检查和一个设计,我们可以避免对每个值进行重复检查?(顺便说一句,它只是一个逻辑,0对于我的情况被解释为NULL,但我也要求像字符串这样的可空对象一样)

eka*_*kad 5

你可以使用?:Operator

cmd.Parameters["@ID"].Value = node.ID == 0 ? (object)DBNull.Value : node.ID;
Run Code Online (Sandbox Code Playgroud)