C#使用SQL Dataset數據集代碼實例

今天小編就爲大家分享一篇關於的文章,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

ADO.NET數據訪問技術的一個突出特點就是支持離線訪問,而實現這種離線訪問的技術核心急速DataSet對象,該對象通過數據駐留在內存來實現離線訪問。

DataSet對象由一組DataTable對象組成,這些對象與DataRelation對象又包含Row(行),集合,Columns(列)集合,Rows集合是有多個DAtaRow對象組成,Columns集合是由多個Datacolumns對象組成。

步驟:

1,引入命名空間System.Data;

2,創建DataSet對象

3,創建DataTable對象

4,將DataTable對象加入DataSet 對象中

5,定義列,並向DataTableh中增加已經定義好的列

6,插入行數據

7,進行相關的操作

代碼演示:

namespace DataSetDemo
{
  class Program
  {
    static void Main(string[] args)
    {
      //創建DataSet對象
      DataSet myds = new DataSet("mycsharp");
      DataTable mydt = new DataTable("mytable01");
      myds.Tables.Add(mydt);  //添加
      //聲明三個列
      DataColumn mydcol1 = new DataColumn("id",Type.GetType("System.Int32"));
      DataColumn mydcol2 = new DataColumn("name", Type.GetType("System.String"));
      DataColumn mydcol3 = new DataColumn("department", Type.GetType("System.String"));
      //添加定義好的列
      mydt.Columns.Add(mydcol1);
      mydt.Columns.Add(mydcol2);
      mydt.Columns.Add(mydcol3);
      //輸入數據
      string[,] mystr= { { "張三","開發部" }, { "李四","技術部" }, { "王五","網絡部" }, { "趙六","人事部" } };
      for (int i=0; i< mystr.Length/2;i++)
      {
        DataRow myrow = mydt.NewRow();  //增加新的行
        myrow[0] = i;
        myrow["name"] = mystr[i, 0];
        myrow[2] = mystr[i, 1];
        mydt.Rows.Add(myrow);
      }
      myds.AcceptChanges();  //保存
    }
  }
}

DataSet 常用簡單方法

  • Clear 移除表中所有含來清除任何數據的DataSet;
  • Clone 複製該DataSet的結構但不復制數據
  • Copy 複製DataSet結構和數據
  • Dispose 釋放DataSet對象
  • Equals 確定兩個DataSet對象是否 相同
  • Merge 將指定的DataSet DataTable 或DataRow 對象的數組併合併到當前地DataSet或DataTable中
  • Reset 將DataSet重置爲初始狀態

小實例: 合併DataSet內容,複製DataSet內容

基於上面的代碼繼續寫:

namespace DataSetDemo
{
  class Program
  {
    static void Main(string[] args)
    {
      //創建DataSet對象
      DataSet myds = new DataSet("mycsharp");
      DataTable mydt = new DataTable("mytable01");
      myds.Tables.Add(mydt);  //添加
      //聲明三個列
      DataColumn mydcol1 = new DataColumn("id",Type.GetType("System.Int32"));
      DataColumn mydcol2 = new DataColumn("name", Type.GetType("System.String"));
      DataColumn mydcol3 = new DataColumn("department", Type.GetType("System.String"));
      //添加定義好的列
      mydt.Columns.Add(mydcol1);
      mydt.Columns.Add(mydcol2);
      mydt.Columns.Add(mydcol3);
      //輸入數據
      string[,] mystr= { { "張三","開發部" }, { "李四","技術部" }, { "王五","網絡部" }, { "趙六","人事部" } };
      for (int i=0; i< mystr.Length/2;i++)
      {
        DataRow myrow = mydt.NewRow();  //增加新的行
        myrow[0] = i+1;   
        myrow["name"] = mystr[i, 0];  //使用字符串
        myrow[2] = mystr[i, 1];
        mydt.Rows.Add(myrow);
      }
      myds.AcceptChanges();  //保存
      Console.WriteLine("更改前的數據");
      outValues(myds);  //調用遍歷方法
      //創建第二個表
      DataTable mydt02 = mydt.Clone();
      DataRow mydr02 = mydt02.NewRow();
      mydt02.Rows.Add(new Object[] { 5,"Czhenya","開發部"});
      mydt02.Rows.Add(new Object[] { 5, "陳九", "開發部" });
      //------合併兩個表------
      myds.Merge(mydt02);  //將其架構合併到myds中
      Console.WriteLine("-----合併後的表-----");
      outValues(myds);
      //------複製--------
      DataSet myds01 = myds.Copy();
      DataSet myds02 = myds.Clone();
      Console.WriteLine("COPY的結果");
      outValues(myds01);  //完全複製
      Console.WriteLine("Clone的結果");
      outValues(myds02);  //克隆出框架,不復制數據
      Console.Read();  
    }
    /// <summary>
    /// 實現遍歷dataset
    /// </summary>
    /// <param name="ds">DataSet名稱</param>
    public static void outValues(DataSet ds)  
    {
      foreach (DataTable outtable in ds.Tables)
      {
        Console.WriteLine("表名稱:"+ outtable.TableName);
        foreach (DataRow outdr in outtable.Rows)
        {
          foreach (DataColumn ourdcol in outtable.Columns)
          {
            Console.Write(outdr[ourdcol] + "\t");
            Console.WriteLine();
          }
        }
      }
    }
  }
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章