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]); }