datatable dt中添加一行后,按照代码执行,却显示第4行没有任何行,怎么修改?代码如下:
for (m = 3; m >= 2; m--) { dt.Rows[m+1].ItemArray = dt.Rows[m ].ItemArray; }
你还是这么赋值吧,按字段赋值,不要一次赋值,这样试试、一个个字段赋值:
for (int i = 0; i < dt.Rows.Count; i++) { DataRow[] customerRow = dataSet1.Tables["Customers"].Select("CustomerID = 'ALFKI'"); customerRow[0]["CompanyName"] = "Updated Company Name"; customerRow[0]["City"] = "Seattle"; }
我这段程序就是想让每行往后依次移动,不是指定的赋值
@巴索罗缪库玛:那就不用这么复杂了,直接在第一行插入一行,别的都会后移的。
@荒野的呼唤: 其实是我想将第二行到第四行的值赋值到第三行到第五行,第一行不变,然后第二行放入一行新数据,该怎么改呢?
@巴索罗缪库玛: 思路你都知道了。还不好做吗,就按你说的这样一步步做,就OK了
@荒野的呼唤: 思路是很清楚,但是代码不对啊,总是显示有错误……行添加出来了,却还是显示位置4没有任何行
DataTable添加行
DataRow dr = dt.NewRow();
dt.Rows.InsertAt(dr, 0);
其实是我想将第二行到第四行的值赋值到第三行到第五行,第一行不变,然后第二行放入一行新数据,该怎么改呢?
根据你的代码大致推测下逻辑,在最后一行新增一条数据与最后一样数据一致?
dt.Rows.Add(dt.Rows[dt.Rows.Count - 1].ItemArray);
其实是我想将第二行到第四行的值赋值到第三行到第五行,第一行不变,然后第二行放入一行新数据,该怎么改呢?
@巴索罗缪库玛:
个人认为楼主思路还是不明确,感觉是在为了解决问题而解决问题,这样会让路越走越窄最后走进死胡同,如果你能站在业务层面告诉大家,你要做什么,在做什么的过程中,需要解决什么样的问题,我想你的解决方案会比现在多的多。如果单从解决CODE级别的问题的话,其他人的方法是可以解决你的问题的。。。
。。。看了你的代码很无语。
假如你这个DataRow是不存在的,那么应该创建并添加:
DataRow row = dt.NewRow();
dt.Rows.Add(row);
有了这个已经添加的DataRow,就是字段赋值的问题了,从你的情况来看,可以写成:
for (m = 3; m >= 2; m--) { foreach(DataColumn col in dt.Column) { dt.Rows[m+1][col] = dt.Rows[m][col]; } }
当然,这里写的Column可能拼写不正确,你写代码的时候确认一下。