懒得解释了,直接用dt.Rows.Add(dt.Rows[0])这个方法的话,会报此行已在此表中,哪怕你复制到别的表,也会报该行已属于别的表,那么就用如下的方法一和方法二来解决吧
不要看我那夸张的datatable测试表,我无聊,加那么多列。。。
DataTable dt = new DataTable(); dt.Columns.Add("c1", typeof(string)); dt.Columns.Add("c2", typeof(string)); dt.Columns.Add("c3", typeof(string)); dt.Columns.Add("c4", typeof(string)); dt.Columns.Add("c5", typeof(string)); dt.Columns.Add("c6", typeof(string)); dt.Columns.Add("c7", typeof(string)); dt.Columns.Add("c8", typeof(string)); dt.Columns.Add("c9", typeof(string)); dt.Columns.Add("c10", typeof(string)); dt.Columns.Add("c11", typeof(string)); dt.Rows.Add("bbb", "bbb", "bbb", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa"); dt.Rows.Add("aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa"); dt.Rows.Add("aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa"); dt.Rows.Add("aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa"); dt.Rows.Add("aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa"); dt.Rows.Add("aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa"); dt.Rows.Add("aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa"); dt.Rows.Add("aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa", "aaa"); //此处才是示例 DataRow dr = dt.NewRow(); //方法1 //dt.ImportRow(dt.Rows[0]); //方法2 dr.ItemArray = dt.Rows[0].ItemArray; dt.Rows.Add(dr); dataGridView1.DataSource = dt;