日期:2014-05-17  浏览次数:21259 次

c# ds中null值的判断
C# code

 if (fieldList.Contains("ZRDW1".ToUpper()) && (ds.Tables[0].Rows[i]["ZRDW1"]!=System.DBNull.Value ))
                        {
                            sp.Command.Parameters.Add("@ZRDW1", decimal.Parse(ds.Tables[0].Rows[i]["ZRDW1"].ToString()));
                        }
                        else
                        {
                            sp.Command.Parameters.Add("@ZRDW1", null);
                        }



传递过来的ds.Tables[0].Rows[i]["ZRDW1"].ToString()是null值,为何ds.Tables[0].Rows[i]["ZRDW1"]!=System.DBNull.Value 的值是true呢。应该是false呀。哪有错误呢?

------解决方案--------------------
IsDBNull
------解决方案--------------------
你都用ToString()转换了,那就是""值

------解决方案--------------------
DbNull 是指数据库中当一个字段没有被设置值的时候的值,相当于数据库中的“空值”。
null 是 C# 中是空引用的意思(在 VB 中为 Nothing),表示没有引用任何对象。
它们的意义是不同的。
------解决方案--------------------
直接!=null不行么