datatable添加新列

jyqxj 2010-10-08 05:10:40
在数据库中查出一个datatable
想往该表添加一列“序号”作为第一列

该列的值随着行数的增加自己增加

我的目的,添加这列作为行号的意思

...全文
657 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-10-08
  • 打赏
  • 举报
回复
gridview直接显示序号 <%# Container.ItemIndex + 1%>
guyehanxinlei 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jyqxj 的回复:]
引用 2 楼 damjmk2 的回复:
查的时候用SQL语句动态生成一列就好了,不用改DataTable那么麻烦的

请问如何动态生成一个列呢

请举一个最简单例子好不
[/Quote]

SELECT ROW_NUMBER() OVER(ORDER BY YourFieldName) AS ID,* FROM YourTableName
try_best7 2010-10-08
  • 打赏
  • 举报
回复
你尝试下重写dt,看下7楼,方法虽然笨了点,你看下能解决么你的问题么。如果你只是需要在数据容器上显示序列号的话,就不需要管dt了,直接操作数据容器,网上有例子,可以查下。
try_best7 2010-10-08
  • 打赏
  • 举报
回复
你尝试下重写dt,看下7楼,方法虽然笨了点,你看下能解决么你的问题么。如果你只是需要在数据容器上显示序列号的话,就不需要管dt了,直接操作数据容器,网上有例子,可以查下。
jyqxj 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 try_best7 的回复:]
需要显示在控件上还是什么?如果显示在控件上,可以直接在控件上加序号列的,网上有很多例子。如果是首先得增加到dt里面,则重写dt.举个例子,原datatable为dt1,列为d1,d2,d3,重造代码为:
DataTable dt = new DataTable();
dt.Columns.Add("da", typeof(int));
dt.Columns.Add("db", typeof(……
[/Quote]
是的
需要显示在asp.net的gridview控件上的
jyqxj 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 try_best7 的回复:]
不明白你既然要移除这两列,那还把他查出来做什么。
[/Quote]
刚开始是想要的
后来又不想要,
要去改查询语句麻烦,就直接在后面移除掉

这个不是我这个贴的问题所在
try_best7 2010-10-08
  • 打赏
  • 举报
回复
不明白你既然要移除这两列,那还把他查出来做什么。
jyqxj 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sweetjian 的回复:]
这个是你要的吗:
在datatable初始化的时候添加一列
DataTable datatable=new DataTable ();
DataColumn cl = new DataColumn("序号");
cl.AutoIncrement = true;
datatable.Columns.Add(cl);
以后datatable数据增加这列会自动递增
[/Quote]



DataTable dt1 = new DataTable();
thisAdapter.Fill(dt1);

dt1.Columns.Remove("CurrentTime");
dt1.Columns.Remove("StationID");
DataColumn dc = new DataColumn();
dc.ColumnName = "序号";
dc.AutoIncrement = true;
dc.DataType =typeof( System.Int32);


dt1.Columns.Add(dc);




我这样写,应该跟上面一样可是不行
try_best7 2010-10-08
  • 打赏
  • 举报
回复
没看到4楼的,4楼的方法不错,呵呵
try_best7 2010-10-08
  • 打赏
  • 举报
回复
需要显示在控件上还是什么?如果显示在控件上,可以直接在控件上加序号列的,网上有很多例子。如果是首先得增加到dt里面,则重写dt.举个例子,原datatable为dt1,列为d1,d2,d3,重造代码为:
DataTable dt = new DataTable();
dt.Columns.Add("da", typeof(int));
dt.Columns.Add("db", typeof(string));
dt.Columns.Add("dc", typeof(string));
dt.Columns.Add("dd", typeof(string));

for (int i = 0; i < dt1.Rows.Count; i++)
{
DataRow dr = dt.NewRow();
dr[0] = i;
dr[1] = dt1.Rows[i]["d1"];
dr[2] = dt1.Rows[i]["d2"];
dr[3] = dt1.Rows[i]["d3"];
dt.Rows.Add(dr);
}
linwanhai 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sweetjian 的回复:]

这个是你要的吗:
在datatable初始化的时候添加一列
DataTable datatable=new DataTable ();
DataColumn cl = new DataColumn("序号");
cl.AutoIncrement = true;
datatable.Columns.Add(cl);
以后datatable数据增加这列会自动递增
[/Quote]

up
jyqxj 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 damjmk2 的回复:]
查的时候用SQL语句动态生成一列就好了,不用改DataTable那么麻烦的
[/Quote]
请问如何动态生成一个列呢

请举一个最简单例子好不
sweetjian 2010-10-08
  • 打赏
  • 举报
回复
这个是你要的吗:
在datatable初始化的时候添加一列
DataTable datatable=new DataTable ();
DataColumn cl = new DataColumn("序号");
cl.AutoIncrement = true;
datatable.Columns.Add(cl);
以后datatable数据增加这列会自动递增
phil999 2010-10-08
  • 打赏
  • 举报
回复
DataColumn 有 AutoIncrement 属性,DataType 设置成 int32
damjmk2 2010-10-08
  • 打赏
  • 举报
回复
查的时候用SQL语句动态生成一列就好了,不用改DataTable那么麻烦的
jyqxj 2010-10-08
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20100813/17/6340cd39-0984-4ac0-8d28-5183650b8f85.html
http://topic.csdn.net/u/20100817/11/68835c03-5ef7-4421-bf7c-faf91fcbeb9d.html

还有请帮忙到这两个贴回复一下
我好结贴
可是没人回复,没法给分

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧