1 private void button1_Click(object sender, EventArgs e) 2 { 3 DataTable dt1 = new DataTable(); 4 dt1.Columns.Add("ID", typeof(string)); 5 dt1.Columns.Add("NAME", typeof(string)); 6 dt1.Columns.Add("AGE", typeof(int)); 7 dt1.Columns.Add("SEX", typeof(string)); 8 9 dt1.PrimaryKey = new DataColumn[] { dt1.Columns["ID"] }; 10 for (int i = 0; i < 5; i++) 11 { 12 DataRow dr = dt1.NewRow(); 13 dr["ID"] = "00" + i.ToString(); 14 dr["NAME"] = "00-" + i.ToString(); 15 dr["AGE"] = 15 + i; 16 dr["SEX"] = "M"; 17 dt1.Rows.Add(dr); 18 19 } 20 DataTable dt2 = new DataTable(); 21 dt2.Columns.Add("ID", typeof(string)); 22 dt2.Columns.Add("NAME", typeof(string)); 23 dt2.Columns.Add("Course", typeof(string)); 24 dt2.Columns.Add("Score", typeof(int)); 25 26 dt2.PrimaryKey = new DataColumn[] { dt2.Columns["ID"] }; 27 for (int i = 0; i < 5; i++) 28 { 29 DataRow dr = dt2.NewRow(); 30 dr["ID"] = "00" + i.ToString(); 31 dr["NAME"] = "00-" + i.ToString(); 32 dr["Course"] = "C#"; 33 dr["Score"] = i + 80; 34 dt2.Rows.Add(dr); 35 } 36 //Merge 37 dt1.Merge(dt2); 38 //Copy 39 var dt3 = dt1.Copy();//Copy,复制表的结构以及数据 40 //Clone 41 var dt4 = dt2.Clone();//Clone,复制表的结构、约束信息 42 43 //对DataTable的操作 44 DataRow dr1 = dt3.NewRow(); 45 dr1["ID"] = "005"; 46 dr1["NAME"] = "00-5"; 47 dr1["AGE"] = 15; 48 dr1["SEX"] = "F"; 49 dt3.Rows.InsertAt(dr1, 2);//表的指定位置插入新增加的一行 50 51 dt3.Columns.Add(new DataColumn() { ColumnName = "Memo", DataType = typeof(string) });//默认插入到最后一列 52 dt3.Columns["Memo"].SetOrdinal(0);//把插入的列移动到第一行 53 54 int memoIndex = dt3.Columns.IndexOf("Memo");//获取列的位置信息 55 var isContainName = dt3.Columns.Contains("NAME");//判断table中是否存在某列 56 57 List<string> columnsNameList = new List<string>();//遍历获取table的所有列名 58 foreach (DataColumn col in dt3.Columns) 59 { 60 columnsNameList.Add(col.ColumnName); 61 } 62 63 dt3.Columns.RemoveAt(memoIndex);//通过列名的索引进行移除 64 dt3.Columns.RemoveAt(2);//通过列名的索引进行移除 65 dt3.Columns.Remove("SEX");//通过列名进行移除,建议使后者 66 67 string[] name = new string[dt3.Rows.Count];//方法一:对表中的数据进行遍历输出 68 string[] id = new string[dt3.Rows.Count]; 69 for (int i = 0; i < dt3.Rows.Count; i++) 70 { 71 name[i] = dt3.Rows[i]["NAME"].ToString(); 72 id[i] = dt3.Rows[i]["ID"].ToString(); 73 } 74 75 dt3.Clear();//清空表中的数据 76 }