1. 程式人生 > >C# DataSet(記憶體中的資料集)

C# DataSet(記憶體中的資料集)

DataSet 中有多個 DataTable;DataTable 中有多個DataColumn (列名),多個Rows (資料行)。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace _04DataSetDemos
{
    public partial class MainFrm : Form
    {
        public MainFrm()
        {
            InitializeComponent();
        }

        private void MainFrm_Load(object sender, EventArgs e)
        {
            //建立一個記憶體的資料集
            DataSet ds =new DataSet("DS5");

            //建立一張記憶體表
            DataTable dt1 =new DataTable("dt1");

            //把表放到資料集裡面去。
            ds.Tables.Add(dt1);

            //給表定義列
            DataColumn dcName = new DataColumn("Name",typeof(string));  //定義三個列名
            DataColumn dcAge = new DataColumn("Age",typeof(int));
            DataColumn dcId=new DataColumn("Id",typeof(int));

            //把列放到表裡面去。
            dt1.Columns.AddRange(new DataColumn[]{dcId,dcName,dcAge});

            //給表新增資料
            dt1.Rows.Add(1, "老馬", 18);  //新增資料行,一行三個資料 對應三個列名。次序也要對應。
            dt1.Rows.Add(1, "趙黑", 29);
            dt1.Rows.Add(1, "老王", 18);
            dt1.Rows.Add(1, "老汪", 19);



            //-------

            //建立一張記憶體表,第二張表
            DataTable dt2 = new DataTable("dt2");

            //把表放到資料集裡面去。
            ds.Tables.Add(dt2);

            //給表定義列
            DataColumn dcName2 = new DataColumn("Name", typeof(string));
            DataColumn dcAge2 = new DataColumn("Age", typeof(int));
            DataColumn dcId2 = new DataColumn("Id", typeof(int));

            //把列放到表裡面去。
            dt2.Columns.AddRange(new DataColumn[] { dcId2, dcName2, dcAge2 });

            //給表新增資料
            dt2.Rows.Add(1, "老馬", 18);
            dt2.Rows.Add(1, "趙黑", 29);
            dt2.Rows.Add(1, "老王", 18);
            dt2.Rows.Add(1, "老汪", 19);


            //遍歷資料集DataSet
            foreach(DataTable tb in ds.Tables)
            {
                foreach (DataRow dataRow in tb.Rows)  //遍歷資料表 DataTable
                {
                    Console.WriteLine(dataRow[0]+"  " +dataRow[1]+"  "+dataRow[2]);
                }
            }

        }
    }
}