int th8;//判断第th[8]项 推出年份 
if (th[8].ToString() != "○" && th[8].ToString() != "●" && th[8].ToString() != "-")
{
    th8 =Convert.ToInt32(th[8].ToString());
}
else
{
    th8//是一个INT值  怎么给他赋上空值   因为数据库里就是INT行的字段  @推出年份 int
    我用DBNull 也不好使  th8=DBNull;是用的不对还是不能用!有更好的方法吗?
    如果没有是不是就得直接用th[8].ToString()获得数据,让它为空!先谢谢了!
}本人新手一个!

解决方案 »

  1.   

    int类型不行的吧。。况且也没直接赋DBNull这一说吧
    string类型可以考虑th8=null
      

  2.   


    int? h8;
    if (th[8].ToString() != "○" && th[8].ToString() != "●" && th[8].ToString() != "-")
    {
        th8 =Convert.ToInt32(th[8].ToString());
    }
    else
    {
        th8 = null;

      

  3.   

    。net 2。0以上版本提供了int.TryParse方法
    建议你使用这个方法来转换类型,这样尽可能的避免try catch
      

  4.   

    int 是不能为空的吧!我这是不好使!要不也不那么费劲了!
      

  5.   

    上面不是提到了int? 这样的可空int类型么?
      

  6.   

    这种写法是可以的!!
    int? a = null;
      

  7.   

    decimal z = (decimal)x;
    强制转换看看
      

  8.   

    一样的...decimal?...所有值类型即结构都有对应的可空类型,实际上是泛型结构Nullable<T>,T?形式是别名...int? 即 Nullable<int>...
    decimal? 即 Nullable<decimal>...