可以把DataSet当成内存中的数据库或者数据容器,DataSet是不依赖于数据库的独立数据集合。当数据库中的数据填充到Dataset之后,即使断开与数据库的连接,或者关闭数据库,DataSet依然是可用的。Dataset是一种内存集合数据结构。

Datatable是内存中的数据表。可以独立创建使用,也可以作为Dataset的成员使用。Datatable包括Datacolumn和Datarow,datacolumn用于定义表的结构,即表的列名(属性)。Datarow表中的数据(除属性列),可以用datarow将数据添加到对应的datacolumn中。

其关系可用如下图:

DataSet基础运用: 

using System;
using System.Data;

namespace Dataset
{
    class Program
    {
        static void Main(string[] args)
        {
            //定义一个货物数据集
            DataSet commodity = new DataSet();
            //定义日用品表和文具表
            DataTable daily_Necessities = new DataTable();
            DataTable stationery = new DataTable();
            //把表添加到数据集合中
            commodity.Tables.Add(daily_Necessities);
            commodity.Tables.Add(stationery);

            //给表定义列
            DataColumn comName = new DataColumn("商品名", typeof(string));
            DataColumn comPrice = new DataColumn("价格", typeof(int));
            DataColumn comInventory = new DataColumn("库存", typeof(int));

            //把列放到表里面
            //*****用数组方式批量添加******
            daily_Necessities.Columns.AddRange(new DataColumn[] { comName, comPrice, comInventory });

            //******逐个添加******  每个列定义只能用在一张表中  重复用的的列需要重新定义
            stationery.Columns.Add("商品名", typeof(string));
            stationery.Columns.Add("价格", typeof(int));
            stationery.Columns.Add("库存", typeof(int));


            //给表中添加数据
            daily_Necessities.Rows.Add("牙膏", 20, 100);
            daily_Necessities.Rows.Add("洗衣液", 18, 67);

            stationery.Rows.Add("铅笔", 1, 200);
            stationery.Rows.Add("文件夹", 6,50);


            foreach (DataTable tb in commodity.Tables)
            {
                foreach (DataRow dataRow in tb.Rows)
                {
                    Console.WriteLine(dataRow[0] + "  " + dataRow[1] + "  " + dataRow[2]);
                }
            }

        }
    }
}

在循环遍历位置设置断点可得以下结果: 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐