DataTable 的用法

  • What is DataTable 

用于储存临时数据的虚拟表( 有行row 有一行的单元格cell)

  • Function about DataTable:(Rows[]行集合、Rows[][]值、dt.rows.Add(new object[]{和列顺序一致}))/dt.Column.Add(列名,数值类型) dt.rows.remove/dt.rows.removeat/)

读入数据,作为中介临时储存。(在毕设的系统开发时,充当中间人的角色)

How to use DataTable 

引用命名空间

1 using System.Data;//对命名空间的使用,如果已添加,则在右侧引用不用添加,若未添加,则需要在添加中添加,后在程序开始前Using 名称空间  

涉及的知识点:

1.namespace的作用:为了防止同名的冲突。(可以嵌套、可以重名、可以无名)

 1 1 ///// 普通的命名空间
 2  2 namespace N1 // N1 为命名空间的名称
 3  3 {
 4  4 //  命名空间中的内容,既可以定义变量,也可以定义函数,也可以有类
 5  5 int a;
 6  6 int Add(int left, int right)
 7  7 {
 8  8 return left + right;
 9  9 }
10 public Class 类名
11 {
12 变量
13 方法(参数){方法体}
14 }
15 10 }
16 11 //  /命名空间可以嵌套
17 12 namespace N2
18 13 {int a;
19 14 int b;
20 15 int Add(int left, int right)
21 16 {
22 17 return left + right;
23 18 }
24 19 namespace N3
25 20 {
26 21 int c;
27 22 int d;
28 23 int Sub(int left, int right)
29 24 {
30 25 return left - right;
31 26 }
32 27 }
33 28 }
34 29 // // 同一个projiect中允许存在多个相同名称的命名空间,编译器最后会合合并
35 30 
36 31 namespace N1
37 32 {
38 33 int Mul(int left, int right)
39 34 {
40 35 return left * right;
41 36 }
42 37 }
43 38 // // 没有名称的命名空间(只在声明该空间的文件中可访问,访问不用加名称空间。其他文件不可见)
44 39 namespace
45 40 {
46 41 int a;
47 42 int Div(int left, int right)
48 43 {
49 44 if(0 == right)
50 45 exit(0);
51 46 return left / right;
52 47 }
53 48 }
View Code

2.使用自己建立的类,需要实例化才能使用

1 public  class TestClass1//新建一个类
2     {
3         public int name { get; set; }//name 属性
4         public void Add(int a, int b)//含有两个参数的方法
5         { }
6     }
View Code
TestClass1 a = new TestClass1();//实例化自建类
            a.name=2;//访问类的属性
            

创建表(实例化DataTable、类实例化之后才可以使用)

1 //创建一个空表
2   DataTable dataTable1 = new DataTable();//创建一个DataTable的对象,虚拟表
3             //创建一个有名字的表
4  DataTable datatable2 = new DataTable("NewTable","DataTable_Practice");//利用重载,设置表名、表创建的命名空

创建列(列类 DataColumn 需要实例化,dataTable的属性:Column 方法Add(列的实例化对象) )

1 //创建一个空列,先实例化,后添加
2 DataColumn dataColumn = new DataColumn();//实例化列类(DataColumn)
3 dataTable1.Columns.Add(dataColumn);//将一个空列添加到DataTable
4             //创建一个带有列名和列内数据类型的列,边实例化 边添加
5 dataTable1.Columns.Add("列名",typeof(string));
6             //先实例化 后添加
7 DataColumn dataColumn1 = new DataColumn("列名", typeof(string));
8   dataTable1.Columns.Add(dataColumn1);

创建行(利用DataTable的newRow方法创建,利用DataTable的属性:Rows 方法:Add来创建Add(另一个表的Rows[i].ItemArry/具体的内容))

             //创建空行
 DataRow dataRow = dataTable1.NewRow();//与创建列不同,行的创建利用的DataTable的方法(行的类为Datarow)
 dataTable1.Rows.Add();
            //通过行框架创建并赋值
 dataTable1.Rows.Add("aaaa" new object[]{内容});(注意和列的定义相符合)
            //利用赋值另一个DataTable的值来创建
  dataTable1.Rows.Add(datatable2.Rows[i].ItemArray);
row1(类型为DataRows)column2(类型为DataColumn)column3column4
row2(利用dt的newROws方法实例化并创建)(利用.Rows.Add()添加)(利用new实例化)(利用dt.column.Add()添加) 

 对DataTable的赋值

1             //利用行的中列的位置赋值(类似数组)
2     DataRow dataRow = datatable2.NewRow();//创建了一行
3     dataRow[0] = 2;//对该行第一列赋值
4             //利用行中列的名称进行赋值
5      dataRow["列名"] = 2;//对该行的名称为“列名”的列赋值(datatable.column.add("列名",列的数据类型))即可创建一个有名的列
6             //对DataTable根据位置赋值
7     dataTable1.Rows[0][0] = 1;//对datatabe中第一行第一列赋值
8             //对DataTable 根据位置和列名进行赋值
9      dataTable1.Rows[0]["列名"] = 1;//对DataTable中第一行的列名为“列名‘进行赋值

从DataTable中取值

 string name = dataTable1.Rows[0][0].ToString();//把DataTable中的第一个数字赋值给那么

从DataTable中筛选行(列)(DataTable的属性;Select 、like /' 李'模糊查询 、rows[] 表示一行 row[][] 表示一个数)

             //选择"列1"为空的行
 DataRow[] dr = dataTable1.Select("列1=null");
            //选择列1 为5 的行的集合
  DataRow[] dr1 = dataTable1.Select("列1=5");
            //选择列1包含'李"的行的集合
  DataRow[] dt2 = datatable2.Select("列1 like '李'");

从DataTable中删除行(Remove Removeat 两个方法,和Select、Add一样,datatable.rows.方法名)

1 //利用dataTable.rows.remove()方法删除行
2             datatable2.Rows.Remove(datatable2.Rows[0]);//删除第一行的数
3   //利用DataTable.rows.Removeat()方法删除 
4             datatable2.Rows.RemoveAt(0);//删除第一行的数 
//利用循环删除多行时,应采用倒序,顺序编号发生变化 5 for (int i = datatable2.Rows.Count; i > 0; i--) 6 { 7 datatable2.Rows.RemoveAt(i); 8 }

复制表

 

//先创建后复制
            DataTable ta = new DataTable("表名");
            ta = datatable2.Copy();
   //边创建边复制
            DataTable ta1 = datatable2.Copy();
  //只复制格式不要数据——先复制后清空
            DataTable dataTable3 = new DataTable();
            dataTable3 = datatable2.Copy();
            dataTable3.Clear();
//只复制格式不要数据——克隆
            DataTable dataTable4 = datatable2.Clone();
//只要表中的一行
            DataTable dataTable5 = datatable2.Copy();
            dataTable5.Clear();
            dataTable5.ImportRow(datatable2.Rows[0]);//加入另一表的第一行

表排序

DataTable table = new DataTable("排序表");
            table.Columns.Add("ID列名",typeof(int));//ID列
            table.Columns.Add("Name", typeof(string));//Name列
            table.Columns.Add("Age", typeof(int));//Age列
            table.Rows.Add(new object[] { 1, "", 20 });//第一行(与列想对应)
            table.Rows.Add(new object[] { 2,"",21});//第二行
            //获取表试图
            DataView dataView = table.DefaultView;
            //利用Sort属性,排序
            dataView.Sort = "ID DESC";//ID倒序
            dataView.ToTable();//创建为新的表格

 

转载于:https://www.cnblogs.com/LljCoder/p/10759109.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值