数据集DataSet

ADO.NET数据访问技术的一个突出的特点就是支持离线访问,而实现这种离线访问技术的核心就是DateSet对象,该对象通过将数据驻留在内存来实现离线访问.

 

DataSet对象由一组DataTable对象组成,这些对象DataRelation对象互相关联,这些Data Table对象又包含Rows()集合、Columns()集合,Rows集合是由多个DataRow对象组成,Columns集合是由多个DataColumns对象组成。

步骤

  1. 引入命名空间system.Data
  2. 创建DataSet对象
  3. 创建DataTable对象
  4. DataTable对象加入DataSet对象中
  5. 定义列,并像DataTable中增加已经定义好的列
  6. 插入行数据
  7. 进行相关操作
    class Program
    {
        public static void outprint(DataSet ds)   //输出方法
        {
            foreach (DataTable outable in ds.Tables)
            {
                Console.WriteLine("表名"+outable.TableName);

                foreach (DataRow outdrow in outable.Rows)
                {
                    foreach (DataColumn outcolumn in outable.Columns )
                    {
                        Console.WriteLine(outdrow[outcolumn]+"\t");
                        Console.WriteLine();
                    }
                }

            }
            
        }



        static void Main(string[] args)
        {
            try
            {
                //定义数据集
                DataSet myds = new DataSet("book");
                //定义表
                DataTable mydt = new DataTable("table001");
                //数据表添加到数据集中
                myds.Tables.Add(mydt);

                //定义列  相当于字段 行 相当于数据  有了字段才能在行上面添加数据,所以要先定义列
                
                DataColumn mytcl1 = new DataColumn("name",Type.GetType("System.String"));   //定义mycl1列=新列 列的名称和获取列的数据类型
                DataColumn mytcl2 = new DataColumn("deparment",Type.GetType("System.String"));
                //列加入到数据表中
                mydt.Columns.Add(mytcl1);
                mydt.Columns.Add(mytcl2);
                string[,] str = { { "张三", "开发部" }, { "赵四", "项目部" }, { "王五", "售后部" }, { "赵六", "技术部" } };

                for (int i = 0; i < str.Length / 2; i++)      //for循环添加数据
                {
                    DataRow myrow = mydt.NewRow(); //定义行 等于表格中的新行 我们先前定义了表和列  列加入表中,
                                                  //table.newrow()返回一个具有相同架构的新行 不定义列直接newrow 里面有字段的也就是没架构
                    
                    myrow[0] = str[i, 0];
                    myrow[1] = str[i, 1];
                    mydt.Rows.Add(myrow);     //行加入表中
                }
                myds.AcceptChanges();  //保存
                outprint(myds);
                
            }
            catch (Exception ex)

            {
                Console.WriteLine(ex.Message.ToString());
            
            }
            Console.ReadKey();
        }
    }
}

  

自己理解
创建dataset数据集的时候 就跟创建database一样
首先呢 要创建数据库【dateset】
创建数据表【datatable】
把表加入到数据库中 ,之后呢要创建字段了 字段就是列
创建完列之后 要把列加入到表中 
整个一个dataset数据集(数据库)的框架就弄好了。
定义一个2维数组,利用for 循环传到刚刚我们创建的框架中
往框架中传数据需要用到行(DataRow drw = dtb.NewRow();)把行加入到表中
Drw[0] 代表第一行
Drw[1] 代表第二行
.
.
.
之后输出dataset数据集
创建一个方法   
public void outvalue(DataSet ds)
        {
            foreach (DataTable outdtb in ds.Tables)   //首先检查数据集中的表
            {
                Console.WriteLine(outdtb.TableName);  //输出表名
                foreach (DataRow outdrw in outdtb.Rows)  //检查行数据
                {
                    foreach (DataColumn outdcl in outdtb.Columns) //检查列数据
                    {
                        Console.Write(outdrw[outdcl]+"\t"); //输出列数据
                        
                    }
                    Console.WriteLine(); //输出一列后换行
                }
                
            }

 

posted @ 2018-03-22 16:15  WhiteSpace  阅读(1229)  评论(1编辑  收藏  举报