5.归纳应用之CRUD(增加和删除改查)

5.1新增 

笔者们在DataRow中是有一个属性叫RowState
叫做行状态,行状态首要有如下值:“UnChange”(无变化),“Added”(新增过后的数目),“Modified”(修改之后的数码),“Deleted”
删除中的数据,如下图,下图为地点添加行数据的代码,断点调节和测试。

亚洲杯投注 1

通过上诉分析,大家会意识,添加的数码,并没有付诸到内存上,只是程序方今存款和储蓄的。那么大家怎么提交呢,看如下代码。

using System;
using System.Data;

namespace testData
{
    class Program
    {
        static void Main(string[] args)
        {
            DataSet ds = new DataSet("Set");
            DataTable dt = new DataTable("User");
            dt.Columns.Add(new DataColumn("ID", typeof(int)));//设定表头ID
            dt.Columns.Add("Name", typeof(string));//设定表头Name
            dt.Columns.Add("Age", Type.GetType("System.Int32"));//设定表头Name
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                Console.WriteLine("遍历表头方式1_____"+dt.Columns[i]);

            }
            foreach (var item in dt.Columns)
            {
                Console.WriteLine("遍历表头方式2~~~" + item);
            }
            DataRow dr = dt.NewRow();
            dr["ID"] = 1;
            dr["Name"] = "xiaomeng";
            dr["age"] = 21;
            dt.Rows.Add(dr);
            dt.AcceptChanges();//提交数据
            ds.Tables.Add(dt);//把一个表加入到数据集中
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow item= dt.Rows[i];
                Console.WriteLine(item["name"]+"今年"+item["age"]+"岁了");
            }
            Console.WriteLine("当前数据集中有“"+ ds.Tables.Count + "”个表   ");
            Console.WriteLine("当前数据集的表名   " + ds.Tables[0].TableName);
            Console.Read();
        }
    }
}

  亚洲杯投注 2

 

 提交代码DataTable.AcceptChanges();那么有内存的交付是还是不是也应当有内部存款和储蓄器的回滚,那里可是多介绍了,我们来看下

DataTable 新增行数据的时候状态 为 Added
,那一个时候能够选取DataTable的 .AcceptChanges()方法举行提交,能够应用RejectChanges()函数举行回滚。

DataTable 修改行数据的时候状态 为
Modified ,这几个时候能够使用DataTable的 .AcceptChanges()方法举行付出,能够应用RejectChanges()函数进行回滚。

DataTable 删除行数据的时候状态 为
Deleted,那么些时候能够动用DataTable的 .AcceptChanges()方法开始展览付出,能够选取RejectChanges()函数举办回滚。

上边来看下增加和删除改的代码

using System;
using System.Data;

namespace testData
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable dt = new DataTable();
            DataColumn[] arrayColumn = {
                new DataColumn("id", typeof(int)),
                new DataColumn("name", typeof(string)),
                new DataColumn("age", typeof(int)),
                new DataColumn("sex", typeof(string))
            };  
            dt.Columns.AddRange(arrayColumn);
            Console.WriteLine("---------------------------新增---------------------------");
            DataRow dr0 = null;
            for (int i = 0; i < 5; i++)
            {
                dr0 = dt.NewRow();
                dr0[0] = i;
                dr0[1] = "xiaoming"+i;
                dr0[2] = 20+i+new Random().Next(1,10);
                dr0[3] = new Random().Next(i, 200)%3==0?"男":"女";

                dt.Rows.Add(dr0);
            }
            Console.WriteLine("新增没有提交打印");
            Print(dt);
            Console.WriteLine("状态==================" + dr0.RowState);
            dt.AcceptChanges();//新增提交
            Console.WriteLine("新增提交后打印");
            Print(dt);
            Console.WriteLine("状态==================" + dr0.RowState);
            Console.WriteLine("---------------------------修改---------------------------");
            DataRow dr1 = dt.Rows[0];
            dr1["name"] = "wbcsky";
            Console.WriteLine("修改没有提交打印");
            Print(dt);
            Console.WriteLine("状态==================" + dr1.RowState);
            dt.AcceptChanges();//新增提交
            Console.WriteLine("修改提交后打印");
            Print(dt);
            Console.WriteLine("状态==================" + dr1.RowState);
            Console.WriteLine("---------------------------删除---------------------------");
            DataRow dr2=dt.Rows[0]  ;//删除第一条
            dr2.Delete();//这里没有使用dt.rmove 和dt.rmoveat,因为这两个方法直接提交了
            Console.WriteLine("删除没有提交打印");
            Print(dt);
            Console.WriteLine("状态==================" + dr2.RowState);
            dt.AcceptChanges();//新增提交
            Console.WriteLine("删除提交后打印");
            Print(dt);
            Console.WriteLine("状态==================" + dr2.RowState);
            Console.Read();
        }

        private static void Print(DataTable dt)
        {
            foreach (DataRow item in dt.Rows)
            {
                string msg = "";
                try
                {
                    msg = $"id={ item[0]},name={item[1]},age={item[2]},sex={item[3]}";
                }
                catch (Exception e)
                {
                     msg =e.Message;

                }

                Console.WriteLine(msg);
            }
        }
    }
}

执行结果如下图

亚洲杯投注 3

 

 3.DataTable 的科学普及使用

 DataTable 和DataSet
命名空间一样,实例化的法子有二种,然则常用的就二种,第两种内定了表空间;那里可是多解释,将来大家来看下二种常用实例形式;

实例化1                               DataTable dt0 = new
DataTable();//没有点名表名,暗中认可表名为 NewDataTable
实例化2                               DataTable dt1 = new
DataTable(“User”);//钦命表名

using System;
using System.Data;

namespace testData
{
    class Program
    {
        static void Main(string[] args)
        {
            DataSet ds = new DataSet("Set");
            DataTable dt = new DataTable("User");
            ds.Tables.Add(dt);//把一个表加入到数据集中
            Console.WriteLine(ds.Tables.Count);
            Console.WriteLine(ds.Tables[0].TableName);
            Console.Read();
        }
    }
}

  通过上面的代码,大家能够见见,我们选用DataSet
的Add方法将二个DataTable 参预数据集。

在前文概述中,大家就说了DataTable
是一个数据表,数据表就要有表头,那么一旦创立1个表头呢,上代码

 DataSet ds = new DataSet("Set");
            DataTable dt = new DataTable("User");
            dt.Columns.Add(new DataColumn("ID", typeof(int)));//设定表头ID
            dt.Columns.Add("Name", typeof(string));//设定表头Name
            dt.Columns.Add("Age", Type.GetType("System.Int32"));//设定表头Name
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                Console.WriteLine("遍历表头方式1_____"+dt.Columns[i]);

            }
            foreach (var item in dt.Columns)
            {
                Console.WriteLine("遍历表头方式2~~~" + item);
            }
            ds.Tables.Add(dt);//把一个表加入到数据集中
            Console.WriteLine("当前数据集中有“"+ ds.Tables.Count + "”个表   ");
            Console.WriteLine("当前数据集的表名   " + ds.Tables[0].TableName);
            Console.Read();

 那样一张空的表格,大家就有了,上面正是大家什么样添加1个数据行了,别急,大家先来看下DataRow的利用。关于成立贰个数目行我们会在高档部分解释。

 

 4.DataRow 的宽泛使用

DataRow 的创导方式,唯有一种,因为我们net
中设定了DataRow不容许实例化,只好通过
DataTable.NewRow()来成立,如 DataRow dr =
dt.NewRow();那样我们就赢得了几个空行对象。

4.1 怎么样给DataTable 扩展行数据吧??看如下代码

using System;
using System.Data;

namespace testData
{
    class Program
    {
        static void Main(string[] args)
        {
            DataSet ds = new DataSet("Set");
            DataTable dt = new DataTable("User");
            dt.Columns.Add(new DataColumn("ID", typeof(int)));//设定表头ID
            dt.Columns.Add("Name", typeof(string));//设定表头Name
            dt.Columns.Add("Age", Type.GetType("System.Int32"));//设定表头Name
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                Console.WriteLine("遍历表头方式1_____"+dt.Columns[i]);

            }
            foreach (var item in dt.Columns)
            {
                Console.WriteLine("遍历表头方式2~~~" + item);
            }
            DataRow dr = dt.NewRow();
            dr["ID"] = 1;
            dr["Name"] = "xiaomeng";
            dr["age"] = 21;
            dt.Rows.Add(dr);
            ds.Tables.Add(dt);//把一个表加入到数据集中
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow item= dt.Rows[i];
                Console.WriteLine(item["name"]+"今年"+item["age"]+"岁了");
            }
            Console.WriteLine("当前数据集中有“"+ ds.Tables.Count + "”个表   ");
            Console.WriteLine("当前数据集的表名   " + ds.Tables[0].TableName);
            Console.Read();
        }
    }
}

我们广大程序员在开发的时候,都会认为这就把2个数额行添加到DataTable
里面了,其实不是那样的?具体看高级部分

 

5.综合使用之CRUD(增加和删除改查)

5.1新增 

作者们在DataRow中是有壹特质量叫RowState
叫做行状态,行状态首要有如下值:“UnChange”(无变化),“Added”(新增过后的数据),“Modified”(修改之后的数量),“Deleted”
删除中的数据,如下图,下图为地点添加行数据的代码,断点调试。

亚洲杯投注 4

由此上诉分析,我们会发现,添加的数码,并不曾交给到内存上,只是程序一时存款和储蓄的。那么大家怎么提交呢,看如下代码。

using System;
using System.Data;

namespace testData
{
    class Program
    {
        static void Main(string[] args)
        {
            DataSet ds = new DataSet("Set");
            DataTable dt = new DataTable("User");
            dt.Columns.Add(new DataColumn("ID", typeof(int)));//设定表头ID
            dt.Columns.Add("Name", typeof(string));//设定表头Name
            dt.Columns.Add("Age", Type.GetType("System.Int32"));//设定表头Name
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                Console.WriteLine("遍历表头方式1_____"+dt.Columns[i]);

            }
            foreach (var item in dt.Columns)
            {
                Console.WriteLine("遍历表头方式2~~~" + item);
            }
            DataRow dr = dt.NewRow();
            dr["ID"] = 1;
            dr["Name"] = "xiaomeng";
            dr["age"] = 21;
            dt.Rows.Add(dr);
            dt.AcceptChanges();//提交数据
            ds.Tables.Add(dt);//把一个表加入到数据集中
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow item= dt.Rows[i];
                Console.WriteLine(item["name"]+"今年"+item["age"]+"岁了");
            }
            Console.WriteLine("当前数据集中有“"+ ds.Tables.Count + "”个表   ");
            Console.WriteLine("当前数据集的表名   " + ds.Tables[0].TableName);
            Console.Read();
        }
    }
}

  亚洲杯投注 5

 

 提交代码DataTable.AcceptChanges();那么有内部存款和储蓄器的交由是否也应该有内部存储器的回滚,那里然而多介绍了,大家来看下

DataTable 新增行数据的时候状态 为 Added
,这些时候能够动用DataTable的 .AcceptChanges()方法开始展览付出,能够选择RejectChanges()函数进行回滚。

DataTable 修改行数据的时候状态 为
Modified ,那么些时候可以行使DataTable的 .AcceptChanges()方法进行提交,能够采用RejectChanges()函数实行回滚。

DataTable 删除行数据的时候状态 为
Deleted,那么些时候能够运用DataTable的 .AcceptChanges()方法开始展览付出,能够行使RejectChanges()函数举办回滚。

上边来看下增删改的代码

using System;
using System.Data;

namespace testData
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable dt = new DataTable();
            DataColumn[] arrayColumn = {
                new DataColumn("id", typeof(int)),
                new DataColumn("name", typeof(string)),
                new DataColumn("age", typeof(int)),
                new DataColumn("sex", typeof(string))
            };  
            dt.Columns.AddRange(arrayColumn);
            Console.WriteLine("---------------------------新增---------------------------");
            DataRow dr0 = null;
            for (int i = 0; i < 5; i++)
            {
                dr0 = dt.NewRow();
                dr0[0] = i;
                dr0[1] = "xiaoming"+i;
                dr0[2] = 20+i+new Random().Next(1,10);
                dr0[3] = new Random().Next(i, 200)%3==0?"男":"女";

                dt.Rows.Add(dr0);
            }
            Console.WriteLine("新增没有提交打印");
            Print(dt);
            Console.WriteLine("状态==================" + dr0.RowState);
            dt.AcceptChanges();//新增提交
            Console.WriteLine("新增提交后打印");
            Print(dt);
            Console.WriteLine("状态==================" + dr0.RowState);
            Console.WriteLine("---------------------------修改---------------------------");
            DataRow dr1 = dt.Rows[0];
            dr1["name"] = "wbcsky";
            Console.WriteLine("修改没有提交打印");
            Print(dt);
            Console.WriteLine("状态==================" + dr1.RowState);
            dt.AcceptChanges();//新增提交
            Console.WriteLine("修改提交后打印");
            Print(dt);
            Console.WriteLine("状态==================" + dr1.RowState);
            Console.WriteLine("---------------------------删除---------------------------");
            DataRow dr2=dt.Rows[0]  ;//删除第一条
            dr2.Delete();//这里没有使用dt.rmove 和dt.rmoveat,因为这两个方法直接提交了
            Console.WriteLine("删除没有提交打印");
            Print(dt);
            Console.WriteLine("状态==================" + dr2.RowState);
            dt.AcceptChanges();//新增提交
            Console.WriteLine("删除提交后打印");
            Print(dt);
            Console.WriteLine("状态==================" + dr2.RowState);
            Console.Read();
        }

        private static void Print(DataTable dt)
        {
            foreach (DataRow item in dt.Rows)
            {
                string msg = "";
                try
                {
                    msg = $"id={ item[0]},name={item[1]},age={item[2]},sex={item[3]}";
                }
                catch (Exception e)
                {
                     msg =e.Message;

                }

                Console.WriteLine(msg);
            }
        }
    }
}

履行结果如下图

亚洲杯投注 6

2.DataSet 的普遍使用 

在C# 中 DataSet 存在于 System.Data
取名空间下,类似于java中包的路径。DataSet 有二种事列格局,代码如下

using System;
using System.Data;

namespace testData
{
    class Program
    {
        static void Main(string[] args)
        {
            DataSet ds1 = new DataSet();//无构造实例,不指定DataSetName
            Console.WriteLine(ds1.DataSetName);
            DataSet ds2 = new DataSet("MySet");//一个构造实例,指定DataSetName
            Console.WriteLine(ds2.DataSetName);
            Console.ReadKey();
        }
    }
}

亚洲杯投注 7

DataSet 常用的天性就三个,Tables ,那里就只是多解释了,如下列出DataSet
.Tables 如下常用属性:

//
ds.Tables.Count;//获取数据集中存在的表的个数
//
ds.Tables.Add(new DataTable());//添加3个表(DataTable)到数据集

//DataTable[] array = { new DataTable(), new DataTable(), new
DataTable() };

//ds.Tables.AddRange(array);//添加3个表(DataTable)的数组(Array)到数据集

//ds.Tables.Remove();//删除一个表

//ds.Tables.RemoveAt();//遵照表的目录从数据集删除3个表

//ds.WriteXml()//将xml 文件写入到DataSet 数据集中

//ds.ReadXml()//将1个xml 文件读取到数码汇总

//ds.Tables.CanRemove()//验证是还是不是足以去除四个集聚中的对象。

1.概念

  DataSetADO.NET的中坚概念。能够把DataSet当成内部存款和储蓄器中的数据库,DataSet是不依靠于数据库的独门数据集合。所谓独立,就是说,即便断开数量链路,或然关闭数据库,DataSet依旧是可用的,DataSet在其间是用XML来讲述数据的,由于XML是一种与平台毫不相关、与语言无关的数量描述语言,而且可以描述复杂关系的数额,比如父子关系的多少,所以DataSet实际上可以容纳全数复杂关系的数据,而且不再依靠于数据库链路。大家得以把DataSet当成内部存储器数据库,DataSet里面能够储存多少个表(DataTable);我们称DataSet为数据集对象。

  DataTable是一个近日保存数据的网格虚拟表(表示内部存储器中数据的八个表。)。DataTable是ADO
dot net 库中的主旨目的。它能够被使用在 VB 和 ASP
上。它并非代码就足以大致的绑定数据库。它拥有微轻风格的用户界面。

任何应用DataTable的指标包蕴DataSet和DataView,DataTable中存放的是一行行的数码,这一行行的数码正是DataRow
的数组(Array);我们称DataTable 为数据表对象。 

       DataRow是DataTable中的数据行,他中间有隐含四个数据列,每种列能够储存不一样类型的值。

 

6.归纳运用之筛选排序

大家只要想给地点的表排序,要怎么排序呢?????,其实排序大家使用DataTable.Select
方法就足以,大家看下怎么利用

亚洲杯投注 8

咱俩会看到select
方法有多少个重载,我们只用二个参数的和连个参数的,当中3个参数的是赛选,多少个参数的率先个参数为筛选,第四个为排序

using System;
using System.Data;

namespace testData
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable dt = new DataTable();
            DataColumn[] arrayColumn = {
                new DataColumn("id", typeof(int)),
                new DataColumn("name", typeof(string)),
                new DataColumn("age", typeof(int)),
                new DataColumn("sex", typeof(string))
            };  
            dt.Columns.AddRange(arrayColumn);

            DataRow dr0 = null;
            for (int i = 0; i < 5; i++)
            {
                dr0 = dt.NewRow();
                dr0[0] = i;
                dr0[1] = "xiaoming"+i;
                dr0[2] = 20+i+new Random().Next(1,5);
                dr0[3] = new Random().Next(i, 200)%3==0?"男":"女";

                dt.Rows.Add(dr0);
            }
            Console.WriteLine("---------------------------筛选之前---------------------------");
            Print(dt);
            DataRow[] rowArr=   dt.Select("age >25", " age desc");
            Console.WriteLine("---------------------------筛选之后按年龄排序---------------------------");
            PrintRow(rowArr);
            Console.Read();
        }
        private static void PrintRow(DataRow[] rowArr)
        {
            foreach (DataRow item in rowArr)
            {
                string msg = "";
                try
                {
                    msg = $"id={ item[0]},name={item[1]},age={item[2]},sex={item[3]}";
                }
                catch (Exception e)
                {
                    msg = e.Message;

                }

                Console.WriteLine(msg);
            }
        }
        private static void Print(DataTable dt)
        {
            foreach (DataRow item in dt.Rows)
            {
                string msg = "";
                try
                {
                    msg = $"id={ item[0]},name={item[1]},age={item[2]},sex={item[3]}";
                }
                catch (Exception e)
                {
                     msg =e.Message;

                }

                Console.WriteLine(msg);
            }
        }
    }
}

 

 4.DataRow 的宽泛使用

DataRow 的创设格局,唯有一种,因为大家net
中设定了DataRow分化意实例化,只好通过
DataTable.NewRow()来创制,如 DataRow dr =
dt.NewRow();那样我们就获得了四个空行对象。

4.1 怎么着给DataTable 扩大行数据吧??看如下代码

using System;
using System.Data;

namespace testData
{
    class Program
    {
        static void Main(string[] args)
        {
            DataSet ds = new DataSet("Set");
            DataTable dt = new DataTable("User");
            dt.Columns.Add(new DataColumn("ID", typeof(int)));//设定表头ID
            dt.Columns.Add("Name", typeof(string));//设定表头Name
            dt.Columns.Add("Age", Type.GetType("System.Int32"));//设定表头Name
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                Console.WriteLine("遍历表头方式1_____"+dt.Columns[i]);

            }
            foreach (var item in dt.Columns)
            {
                Console.WriteLine("遍历表头方式2~~~" + item);
            }
            DataRow dr = dt.NewRow();
            dr["ID"] = 1;
            dr["Name"] = "xiaomeng";
            dr["age"] = 21;
            dt.Rows.Add(dr);
            ds.Tables.Add(dt);//把一个表加入到数据集中
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow item= dt.Rows[i];
                Console.WriteLine(item["name"]+"今年"+item["age"]+"岁了");
            }
            Console.WriteLine("当前数据集中有“"+ ds.Tables.Count + "”个表   ");
            Console.WriteLine("当前数据集的表名   " + ds.Tables[0].TableName);
            Console.Read();
        }
    }
}

大家不少程序员在付出的时候,都会以为那就把二个数据行添加到DataTable
里面了,其实不是那样的?具体看高级部分

 

1.概念

  DataSetADO.NET的着力概念。能够把DataSet当成内部存款和储蓄器中的数据库,DataSet是不重视于数据库的独立数据集合。所谓独立,正是说,就算断开多少链路,只怕关闭数据库,DataSet依旧是可用的,DataSet在里面是用XML来叙述数据的,由于XML是一种与平台非亲非故、与语言非亲非故的数量描述语言,而且能够描述复杂关系的数目,比如父子关系的数码,所以DataSet实际上能够容纳全体复杂关系的多少,而且不再注重于数据库链路。大家能够把DataSet当成内部存款和储蓄器数据库,DataSet里面能够储存几个表(DataTable);我们称DataSet为数据集对象。

  DataTable是叁个如今保存数据的网格虚拟表(表示内部存款和储蓄器中数据的2个表。)。DataTable是ADO
dot net 库中的核心指标。它能够被运用在 VB 和 ASP
上。它并非代码就足以总结的绑定数据库。它抱有微微风格的用户界面。

其它应用DataTable的靶子包涵DataSet和DataView,DataTable中存放的是一行行的多少,这一行行的多寡即是DataRow
的数组(Array);大家称DataTable 为数据表对象。 

       DataRow是DataTable中的数据行,他里面有隐含四个数据列,每一种列能够储存不一致品种的值。

 

6.综合接纳之筛选排序

作者们尽管想给地点的表排序,要怎么排序呢?????,其实排序大家运用DataTable.Select
方法就能够,大家看下怎么接纳

亚洲杯投注 9

大家会合到select
方法有多少个重载,大家只用2个参数的和连个参数的,在那之中1个参数的是赛选,多个参数的首先个参数为筛选,第二个为排序

using System;
using System.Data;

namespace testData
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable dt = new DataTable();
            DataColumn[] arrayColumn = {
                new DataColumn("id", typeof(int)),
                new DataColumn("name", typeof(string)),
                new DataColumn("age", typeof(int)),
                new DataColumn("sex", typeof(string))
            };  
            dt.Columns.AddRange(arrayColumn);

            DataRow dr0 = null;
            for (int i = 0; i < 5; i++)
            {
                dr0 = dt.NewRow();
                dr0[0] = i;
                dr0[1] = "xiaoming"+i;
                dr0[2] = 20+i+new Random().Next(1,5);
                dr0[3] = new Random().Next(i, 200)%3==0?"男":"女";

                dt.Rows.Add(dr0);
            }
            Console.WriteLine("---------------------------筛选之前---------------------------");
            Print(dt);
            DataRow[] rowArr=   dt.Select("age >25", " age desc");
            Console.WriteLine("---------------------------筛选之后按年龄排序---------------------------");
            PrintRow(rowArr);
            Console.Read();
        }
        private static void PrintRow(DataRow[] rowArr)
        {
            foreach (DataRow item in rowArr)
            {
                string msg = "";
                try
                {
                    msg = $"id={ item[0]},name={item[1]},age={item[2]},sex={item[3]}";
                }
                catch (Exception e)
                {
                    msg = e.Message;

                }

                Console.WriteLine(msg);
            }
        }
        private static void Print(DataTable dt)
        {
            foreach (DataRow item in dt.Rows)
            {
                string msg = "";
                try
                {
                    msg = $"id={ item[0]},name={item[1]},age={item[2]},sex={item[3]}";
                }
                catch (Exception e)
                {
                     msg =e.Message;

                }

                Console.WriteLine(msg);
            }
        }
    }
}

 

 

本篇小说适合有一定的基本功的人去查看 ,最好学习过早晚net
编制程序基础在来查看此小说。

本篇小说适合有早晚的底子的人去查看 ,最好学习过一定net
编制程序基础在来查看此小说。

2.DataSet 的广泛使用 

在C# 中 DataSet 存在于 System.Data
取名空间下,类似于java中包的途径。DataSet 有二种事列格局,代码如下

using System;
using System.Data;

namespace testData
{
    class Program
    {
        static void Main(string[] args)
        {
            DataSet ds1 = new DataSet();//无构造实例,不指定DataSetName
            Console.WriteLine(ds1.DataSetName);
            DataSet ds2 = new DataSet("MySet");//一个构造实例,指定DataSetName
            Console.WriteLine(ds2.DataSetName);
            Console.ReadKey();
        }
    }
}

亚洲杯投注 10

DataSet 常用的性格就二个,Tables ,那里就然而多解释了,如下列出DataSet
.Tables 如下常用属性:

//
ds.Tables.Count;//获取数据集中存在的表的个数
//
ds.Tables.Add(new DataTable());//添加叁个表(DataTable)到数据集

//DataTable[] array = { new DataTable(), new DataTable(), new
DataTable() };

//ds.Tables.AddRange(array);//添加八个表(DataTable)的数组(Array)到数据集

//ds.Tables.Remove();//删除3个表

//ds.Tables.RemoveAt();//依照表的目录从数据集删除二个表

//ds.WriteXml()//将xml 文件写入到DataSet 数据汇总

//ds.ReadXml()//将三个xml 文件读取到数码汇总

//ds.Tables.CanRemove()//验证是否足以去除一个集结中的对象。

 

 3.DataTable 的宽广使用

 DataTable 和DataSet
命名空间一样,实例化的章程有三种,然而常用的就二种,第三种钦赐了表空间;那里可是多解释,今后大家来看下三种常用实例格局;

实例化1                               DataTable dt0 = new
DataTable();//没有点名表名,暗中同意表名为 NewDataTable
实例化2                               DataTable dt1 = new
DataTable(“User”);//钦点表名

using System;
using System.Data;

namespace testData
{
    class Program
    {
        static void Main(string[] args)
        {
            DataSet ds = new DataSet("Set");
            DataTable dt = new DataTable("User");
            ds.Tables.Add(dt);//把一个表加入到数据集中
            Console.WriteLine(ds.Tables.Count);
            Console.WriteLine(ds.Tables[0].TableName);
            Console.Read();
        }
    }
}

  通过上面的代码,大家得以看到,大家应用DataSet
的Add方法将二个DataTable 到场数据集。

在前文概述中,大家就说了DataTable
是3个数据表,数据表就要有表头,那么只要创制二个表头呢,上代码

 DataSet ds = new DataSet("Set");
            DataTable dt = new DataTable("User");
            dt.Columns.Add(new DataColumn("ID", typeof(int)));//设定表头ID
            dt.Columns.Add("Name", typeof(string));//设定表头Name
            dt.Columns.Add("Age", Type.GetType("System.Int32"));//设定表头Name
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                Console.WriteLine("遍历表头方式1_____"+dt.Columns[i]);

            }
            foreach (var item in dt.Columns)
            {
                Console.WriteLine("遍历表头方式2~~~" + item);
            }
            ds.Tables.Add(dt);//把一个表加入到数据集中
            Console.WriteLine("当前数据集中有“"+ ds.Tables.Count + "”个表   ");
            Console.WriteLine("当前数据集的表名   " + ds.Tables[0].TableName);
            Console.Read();

 那样一张空的报表,大家就有了,上边就是大家如何添加1个数码行了,别急,大家先来看下DataRow的选择。关于成立一个多少行我们会在高级部分解释。

相关文章

网站地图xml地图