dt.Rows[0]["MyInt"] = ??我想使用适配器的Update()方法自动更新到数据库,但是数据要求是将原来的值设置为空值,我没法为这个整型列赋空值,求教

解决方案 »

  1.   

    如下用DBNull.Value就可以了:dt.Rows[0]["MyInt"] ==DBNull.Value
      

  2.   

    晕啊,没注意
    dv[i]["MyInt"] = e.Node.Checked ?  i.ToString() : System.DBNull.Value;
    报错:无法确定条件表达式的类型,因为“string”和“System.DBNull”之间没有隐式转换但是下面的没有问题
    if(e.Node.Checked)
      dv[i]["MyInt"] = i.ToString();
    else
      dv[i]["MyInt"] = System.DBNull.Value
      

  3.   

    ?:这个双目运算符要求表达式返回值一致,
    因为
    e.Node.Checked ?  i.ToString() : System.DBNull.Value;
    有可能返回string,也有可能返回object类型的DBNull.Value,所以表示式返回类型不一致.而另一个不是一个表达式,所以不会有这个错误.