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) column3 column4
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();//創建為新的表格

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM