首页新闻找找看学习计划

c# 我在datatable dt中添加一行后,无法赋值

0
[待解决问题]

datatable dt中添加一行后,按照代码执行,却显示第4行没有任何行,怎么修改?代码如下:

for (m = 3; m >= 2; m--)
{
       dt.Rows[m+1].ItemArray = dt.Rows[m ].ItemArray;
}
巴索罗缪库玛的主页 巴索罗缪库玛 | 初学一级 | 园豆:48
提问于:2012-05-15 09:03
< >
分享
所有回答(4)
0

你还是这么赋值吧,按字段赋值,不要一次赋值,这样试试、一个个字段赋值:

 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";
}
梦里寻人 | 园豆:11375 (专家六级) | 2012-05-15 09:08

我这段程序就是想让每行往后依次移动,不是指定的赋值

支持(0) 反对(0) 巴索罗缪库玛 | 园豆:48 (初学一级) | 2012-05-15 09:19

@巴索罗缪库玛:那就不用这么复杂了,直接在第一行插入一行,别的都会后移的。

支持(0) 反对(0) 梦里寻人 | 园豆:11375 (专家六级) | 2012-05-15 09:21

@荒野的呼唤: 其实是我想将第二行到第四行的值赋值到第三行到第五行,第一行不变,然后第二行放入一行新数据,该怎么改呢?

支持(0) 反对(0) 巴索罗缪库玛 | 园豆:48 (初学一级) | 2012-05-15 10:14

@巴索罗缪库玛: 思路你都知道了。还不好做吗,就按你说的这样一步步做,就OK了

支持(0) 反对(0) 梦里寻人 | 园豆:11375 (专家六级) | 2012-05-15 10:17

@荒野的呼唤: 思路是很清楚,但是代码不对啊,总是显示有错误……行添加出来了,却还是显示位置4没有任何行

支持(0) 反对(0) 巴索罗缪库玛 | 园豆:48 (初学一级) | 2012-05-15 10:32
0

DataTable添加行

DataRow dr = dt.NewRow();
dt.Rows.InsertAt(dr, 0);
写代码的小2B | 园豆:4346 (老鸟四级) | 2012-05-15 09:41

其实是我想将第二行到第四行的值赋值到第三行到第五行,第一行不变,然后第二行放入一行新数据,该怎么改呢?

支持(0) 反对(0) 巴索罗缪库玛 | 园豆:48 (初学一级) | 2012-05-15 10:14
0

根据你的代码大致推测下逻辑,在最后一行新增一条数据与最后一样数据一致?

dt.Rows.Add(dt.Rows[dt.Rows.Count - 1].ItemArray);

醉低调 | 园豆:128 (初学一级) | 2012-05-15 10:11

其实是我想将第二行到第四行的值赋值到第三行到第五行,第一行不变,然后第二行放入一行新数据,该怎么改呢?

支持(0) 反对(0) 巴索罗缪库玛 | 园豆:48 (初学一级) | 2012-05-15 10:13

@巴索罗缪库玛: 

个人认为楼主思路还是不明确,感觉是在为了解决问题而解决问题,这样会让路越走越窄最后走进死胡同,如果你能站在业务层面告诉大家,你要做什么,在做什么的过程中,需要解决什么样的问题,我想你的解决方案会比现在多的多。如果单从解决CODE级别的问题的话,其他人的方法是可以解决你的问题的。。。

支持(0) 反对(0) 醉低调 | 园豆:128 (初学一级) | 2012-05-15 11:38
0

。。。看了你的代码很无语。

假如你这个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可能拼写不正确,你写代码的时候确认一下。

无之无 | 园豆:5085 (大侠五级) | 2012-05-15 10:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册