在我们工作的过程中有可能要使用DataTable产生一些重复数据(在不重复读取数据库的情况下)
无废话,直接上代码
DataTable复制自身一行(目的产生重复数据),已测试通过可直接复制
1 /// <summary> 2 /// 创造DataTable并产生测试数据 3 /// </summary> 4 /// <returns></returns> 5 public static DataTable CreateDtData(int argRowNum) 6 { 7 DataTable dt = new DataTable(); 8 dt.Columns.Add("ID"); 9 dt.Columns.Add("Name"); 10 dt.Columns.Add("Sex"); 11 dt.Columns.Add("Age"); 12 13 int i = 0; 14 for (; i < argRowNum; i++) 15 { 16 DataRow dr = dt.NewRow(); 17 dr[0] = i; 18 dr[1] = "LD" + i; 19 dr[2] = "male"; 20 dr[3] = i * 6; 21 dt.Rows.Add(dr); 22 } 23 24 return dt; 25 } 26 static void Main(string[] args) 27 { 28 Console.WriteLine("1. 创建DataTable 10行"); 29 DataTable dtSource = CreateDtData(10); 30 Console.WriteLine("2. 复制数据 默认是第一行"); 31 dtSource.ImportRow(dtSource.Rows[0]); 32 dtSource.Rows[dtSource.Rows.Count - 1][1] = "测试"; 33 34 Console.WriteLine(dtSource.Rows[0][1].ToString()); 35 Console.WriteLine(dtSource.Rows[dtSource.Rows.Count - 1][1].ToString()); 36 37 Console.Read(); 38 }
注:
主要思想是使用DataTable的函数ImportRow(作用是复制一行,不是复制引用,是复制数据);
其中dtSource.ImportRow(dtSource.Rows[0]);可以换成dtSource.Rows.Add(dtSource.Rows[0].ItemArray);