关于自增列的简单问题

wyfwyf2000 2010-10-13 01:32:43
我首先有一个datatable,里面有两行数据,然后我添加了一个自增列(inc_num),当我继续添加记录时,inc_num列会自动填值,但刚开始的两行记录里inc_num的值却为空,如何让他们也有值
...全文
138 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
phil999 2010-10-13
  • 打赏
  • 举报
回复
自增列仅对新行起作用,对于已存在的行,值为 DBNull。11楼大侠的办法不错。我不明白的是楼主怎么会有这种奇怪的需求
hujinn 2010-10-13
  • 打赏
  • 举报
回复

DataTable dtNew = dt.Clone();
foreach (DataRow row in dt.Rows)
{
DataRow newRow = dtNew.NewRow();
foreach (DataColumn column in dt.Columns)
{
if (!column.ColumnName.Equals("inc_num"))
{
newRow[column.ColumnName] = row[column.ColumnName];
}
}
dtNew.Rows.Add(newRow);
}

仅供参考
hujinn 2010-10-13
  • 打赏
  • 举报
回复
可以建一个新datatable 把克隆他的结构 把除inc_num以外的字段 的值导入到改datatable 就可以了 不过这方法效率较低
xunxing2010 2010-10-13
  • 打赏
  • 举报
回复
先添加自增列,然后给两行记录自增列字段赋值 比如1,2,然后再设置自增列autoincrement=true, AutoIncrementSeed=1,就可以了
wuyq11 2010-10-13
  • 打赏
  • 举报
回复
自增列不需要赋值,怎么获取的
hao1hao2hao3 2010-10-13
  • 打赏
  • 举报
回复
思路应该就是在添加自增列之前,先访问到这两条记录并给这两条记录的该字段赋值,然后设置自增列,起始值大小就设为刚才赋值后的最大值加1。

wuyq11 2010-10-13
  • 打赏
  • 举报
回复
dt.Columns.Add("ID",System.Type.GetType( "System.Int32 "));
dt.Columns[0].AutoIncrement=true;
harver_xu 2010-10-13
  • 打赏
  • 举报
回复
没法子有值吧
wyfwyf2000 2010-10-13
  • 打赏
  • 举报
回复
新添加行时,id字段才从1开始有值
wyfwyf2000 2010-10-13
  • 打赏
  • 举报
回复
cur_paydt = myds.Tables[0].Copy();
DataColumn column = new DataColumn("id");
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "id";
column.AutoIncrement = true;
column.AutoIncrementSeed = 1;
column.AutoIncrementStep = 1;
column.Caption = "id";
column.ReadOnly = false;
column.Unique = false;
cur_paydt.Columns.Add(column);

cur_paydt这个表里本来有两行数据,这两行字段的"id"值为空,
xiesiren 2010-10-13
  • 打赏
  • 举报
回复
不懂,关注
龍月 2010-10-13
  • 打赏
  • 举报
回复
没看懂,把代码贴出来
wyfwyf2000 2010-10-13
  • 打赏
  • 举报
回复
没人知道吗?这种情况怎么解决

111,098

社区成员

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

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

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