判斷一個值是不是DBNull.Value


C#讀取數據庫返回DataTable,遍歷 DataTable,

在DataRow dr, 假如dr[0]是一個可空的值類型的字段,那么要賦值給C#程序的一個值類型(可空類型變量這里不討論)變量時,

可以這樣判斷dr[0]是不是DBNull:     

 int num=dr[0].Equals(DBNull.Value) ? 0 : Convert.ToInt32(dr[0]);

這樣寫使得代碼簡潔,易讀,少一些if...else...

 

判斷一個類型是不是DBNull.Value的方法如下:

  object obj = DBNull.Value;
            bool b = obj.Equals(DBNull.Value);
            if (b == true)
            {
                Console.WriteLine("obj is a DBNull");
            }
            else
            {
                Console.WriteLine("obj is not a DBNull");
            }
            Console.ReadKey();

 

總結了三種方法:

      while (dr.Read())//循環讀取   
          {      
                    //第一種方法判斷是不是DBNull.Value
                    int num1=dr.IsDBNull(0)?0:dr.GetInt32(0);

                    //第二種方法判斷是不是DBNull.Value
                    int num2 = dr[1].Equals(DBNull.Value) ? 0 : Convert.ToInt32(dr[1]);

                    //第二種方法判斷是不是DBNull.Value
                    int num3 = string.IsNullOrEmpty(dr[2].ToString()) ? 0 : Convert.ToInt32(dr[2]); 
          }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM