天天看點

判斷一個值是不是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]); 
          }      

轉載于:https://www.cnblogs.com/527289276qq/p/5446259.html