1. 程式人生 > >C# DataSet檢視返回結果集

C# DataSet檢視返回結果集

先看一段程式碼:     

private DataSet GetDataSet(string strsql)
{
  string strcon = "server = 192.168.2.1,1433;uid = sa ; pwd = 123456 ; database = MyDB";
  SqlConnection con = new SqlConnection(strcon);
  DataSet ds = new DataSet();
  try
     {
       SqlDataAdapter DA = new SqlDataAdapter(strsql, con);
        DA.Fill(ds, "tb");
     }
   catch (SqlException E)
     {
          throw new Exception(E.Message);
     }
     con.Close();//關閉資料庫
     return ds;
}

以上是連線資料庫,查詢資料庫並返回結果集。

主要看DataSet ds 返回值,怎麼去獲取返回的資料,ds.Tables.Count值為返回的表的數量。

如果查詢sql語句中只有一個select,則返回一個table:

如果有10個select就會返回10個table:

ds.Tables[0].Rows.Count的值為第一個表資料的條數。(下面有23條資料)

ds.Tables[0].Rows[0].ItemArray[0]為第一個表,第一條資料的第一個值。

看到這裡就應該知道怎麼取返回結果集的數了,但是要注意一點,如果返回的某條資料本身就沒有,

比如:查詢的結果ds.Tables[0].Rows.Count=0

,也就是說第一個表的資料條數為0,取值的時候程式寫ds.Tables[0].Rows[0]就會報錯,和陣列越界是同樣的(一個動態陣列沒分配空間就去訪問就會報“訪問越界”),所以這裡面的陣列應該都是動態陣列。

因此,在取值前先判斷一下ds.Tables.Count以及ds.Tables[0].Rows.Count等等的Count的大小,大於0再取值。一般都會使用for和while迴圈的取值,裡面本來就帶了判斷條件,但在單個取值的時候一定要小心。