DataSet的使用
java中有result來擷取資料集,而c#中有Dataset來擷取資料集,那麼我們應該怎麼擷取資料集呢?下面說一下擷取資料集的幾種方式:
第一種: 把資料庫中的資料通過DataAdapter對象填充DataSet。
這種是比較簡單的方式,主要是通過dataAdapter中的fille和fillSchema方法來對資料集進行填充。
主要代碼如下:
class Test
{
//資料庫連接配接
private OleDbConnection olecon;
//指令
private OleDbCommand olecom;
//擴充卡
private OleDbDataAdapter oledata;
//建立list集合:隻存放student對象
private List<student> list = new List<student>();
//資料庫連結類
private void link()
{
//資料庫連接配接語句
string sqlcon = "provider=microsoft.jet.oledb.4.0;data source=./data.mdb";
//建立資料庫連接配接對象
olecon = new OleDbConnection(sqlcon);
//打開資料庫連接配接
olecon.Open();
//插入的sql語句
string addsql = "insert into Data.Test(test_name,test_grade,test_age) values ('張三','軟體一班','22')";
//選擇的sql語句
string selsql = "select * from Test";
try
{
//建立添加指令,将資料添加到資料庫中
olecom = new OleDbCommand(addsql, olecon);
//執行指令
olecom.ExecuteNonQuery();
//測試是否添加成功
Console.WriteLine("儲存成功");
//建立選擇指令,将資料庫中的資料選擇
olecom = new OleDbCommand(selsql, olecon);
//得到oledbdataadapter對象,及dataset與資料之間的橋梁
oledata = new OleDbDataAdapter(olecom);
// 建立dataset資料集用來接收資料
DataSet ds = new DataSet();
//把獲得的資料賦給dataset資料集
oledata.Fill(ds);
//周遊資料集
for (int i = 0; i < ds.Tables[0].Rows.Count; i++) {
//擷取第一個表中第二列的所有值
string name = ds.Tables[0].Rows[i][1].ToString();
//擷取第一個表中第三列的所有值
string grade = ds.Tables[0].Rows[i][2].ToString();
//擷取第一個表中第四列的所有值
string age = ds.Tables[0].Rows[i][3].ToString();
//通過構造函數建構student對象
student st = new student(name,grade,age);
//将建構的對象添加到list集合中
list.Add(st);
//測試是否添加
Console.WriteLine("添加了"+i+"個");
}
foreach(student st in list){
//周遊list集合輸出所有資訊
Console.WriteLine("我的姓名:"+st.Name+"我的班級:"+st.Grade+"我的年齡"+st.Age);
}
}
catch (Exception ex)
{
Console.WriteLine("異常++" + ex.Message);
}
finally
{
//關閉資料庫
olecon.Close();
//釋放資源
olecon.Dispose();
}
}
private static void Main(String[] args)
{
//調用方法
new Test().link();
Console.ReadKey();
}
}
第二種方式 把XML資料流或文本加載到DataSet
由于ADO.NET2.0中增強了與XML檔案的結合,是以在這個時候DataSet中的資料可以從XML資料流或文檔建立。加載XML資料流和文檔到DataSet中是可使用DataSet對象的ReadXml方法。該ReadXml方法讀取 XML 流或文檔的内容并将資料加載到 DataSet 中。根據所指定的XmlReadMode和關系架構是否已存在,它還将建立DataSet的關系架構。
實作代碼如下所示:
DataSet ds= new DataSet("xmlds");
ds.ReadXml("c:\\databases.xml");