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");