C# DataSet查看返回結(jié)果集的實現(xiàn)
先看一段代碼:
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();//關(guān)閉數(shù)據(jù)庫
return ds;
}
以上是連接數(shù)據(jù)庫,查詢數(shù)據(jù)庫并返回結(jié)果集。
主要看DataSet ds 返回值,怎么去獲取返回的數(shù)據(jù),ds.Tables.Count值為返回的表的數(shù)量。
如果查詢sql語句中只有一個select,則返回一個table:

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

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

ds.Tables[0].Rows[0].ItemArray[0]為第一個表,第一條數(shù)據(jù)的第一個值。

看到這里就應(yīng)該知道怎么取返回結(jié)果集的數(shù)了,但是要注意一點,如果返回的某條數(shù)據(jù)本身就沒有,
比如:查詢的結(jié)果ds.Tables[0].Rows.Count=0,也就是說第一個表的數(shù)據(jù)條數(shù)為0,取值的時候程序?qū)?code>ds.Tables[0].Rows[0]就會報錯,和數(shù)組越界是同樣的(一個動態(tài)數(shù)組沒分配空間就去訪問就會報“訪問越界”),所以這里面的數(shù)組應(yīng)該都是動態(tài)數(shù)組。
因此,在取值前先判斷一下ds.Tables.Count以及ds.Tables[0].Rows.Count等等的Count的大小,大于0再取值。一般都會使用for和while循環(huán)的取值,里面本來就帶了判斷條件,但在單個取值的時候一定要小心。
到此這篇關(guān)于C# DataSet查看返回結(jié)果集的實現(xiàn)的文章就介紹到這了,更多相關(guān)C# DataSet返回結(jié)果集內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#中使用FilleStream實現(xiàn)視頻文件的復(fù)制功能
這篇文章主要介紹了C#中使用FilleStream實現(xiàn)視頻文件的復(fù)制功能,本文通過實例代碼給大家介紹的非常想詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09
如何:對Windows 窗體控件進行線程安全調(diào)用
使用多線程提高 Windows 窗體應(yīng)用程序的性能時,必須注意以線程安全方式調(diào)用控件。2007-03-03
Unity實現(xiàn)攻擊范圍檢測并繪制檢測區(qū)域
這篇文章主要介紹了Unity實現(xiàn)攻擊范圍檢測并繪制檢測區(qū)域,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-04-04
Unity創(chuàng)建平鋪網(wǎng)格地圖的方法
這篇文章主要為大家詳細介紹了Unity創(chuàng)建平鋪網(wǎng)格地圖的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07

