注册 登录
编程论坛 ASP.NET技术论坛

[求助]每5条数据加一条空行的问题

垃圾的沉默 发布于 2007-10-14 21:08, 807 次点击
int count=dt.Table["Info"].Rows.Count;
if(count>0)
{
for(int i=1;i<count;i++)
{
if(i%6==0)
{
DataRow dr = ds.Tables[0].NewRow();
ds.Tables[0].Rows.InsertAt(dr,i-1);
}
}
}
这些是加上空行的代码..
会有后面会有很长一些是没加上空行的
只有本站会员才能查看附件,请 登录

[此贴子已经被作者于2007-10-14 21:17:45编辑过]

9 回复
#2
jxnuwy042007-10-15 08:40

这个问题自己完全能够调出来啊,是个算法问题啊,多想想,可以先在纸上画画啊.最重要的就是当你插入了一个空行后table的总行数也会相应的增加.

#3
垃圾的沉默2007-10-15 10:21
以下是引用jxnuwy04在2007-10-15 8:40:21的发言:

最重要的就是当你插入了一个空行后table的总行数也会相应的增加.

就是在这里弄不下去了..怎么画也画不对了

#4
bygg2007-10-15 11:46
这个问题以前有人问过.
int count=dt.Table["Info"].Rows.Count;
DataTable dt1 = new DataTable();
if(count>0)
{
for(int i=1;i<count;i++)
{
DataRow dr = dt1.NewRow();
if(i%6==0)
{
dt1.Rows.InsertAt(dr,i-1);
}
else
{
dr = dt.Table["Info"].Rows[i];
dt1.Rows.Add(dr);
}
}
}
然后用dt1
#5
jxnuwy042007-10-15 12:01

我刚才写的
int count=ds.Tables[0].Rows.Count+ds.Tables[0].Rows.Count/5;//5表示每隔5行.

for(int i=1;i<count;i++)
{
if(i%6==0)
{
DataRow dr=ds.Tables[0].NewRow();
ds.Tables[0].Rows.InsertAt(dr,i-1);
}
}

this.dataGrid1.DataSource=ds.Tables[0].DefaultView;

#6
jxnuwy042007-10-15 12:02
上面的i%6这里的6也是随着变化的.
#7
垃圾的沉默2007-10-15 13:38
问题解决..用4楼的算法占用的内存会小一点,但调试的时候就要注意点..用5楼的话内存会占用比较大点..但只要把代码COPY进去就行了
#8
jxnuwy042007-10-15 13:48
谢谢你提醒,以前还真没考虑过这样的问题呢,我下次写程序要注意一下内存使用的问题了.
#9
bygg2007-10-15 15:14
像这样的问题,最好是不要直接去操作需要改变的数据,这样和我们想象的结果是不一样的.
#10
垃圾的沉默2007-10-15 15:54
LS的说的极是,,,要是数据少或者是流量少的话就不觉得什么..当流量大了以后.内存的问题就会出来了....
1