C#中DataSet的使用

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");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章