当前位置:编程学习 > C#/ASP.NET >>

Gridview 加载的列表中间插入值,操作数据库 如何插入及修改编号

表格的格式如下:
id  name   ischeck
1   jack     1
2   tony     2
3   amanda   3
4   xiao     4
5   ming     5

问题1 :我如何先根据ID的顺序,给ischeck的列插入编号呢?语句怎么写

插入如上表的编号以后,因为我表格的排序要用ischeck来排序,当我要在id为2、3 中间插入一个值 ,其实就是给ischeck 重新编号我该怎么弄,效果如下表显示

id  name   ischeck
1   jack     1
2   tony     2
3   amanda   4
4   xiao     5
5   ming     6
6   tao      3

这样的更新语句怎么写?求各位帮忙!答者给分!谢谢! --------------------编程问答-------------------- insert into table 
select id,name,max(id)+1
from table

CREATE Proc spprod
@Uid int, 
@name varchar(255),
@NewOrderIndex smallint
as  
 Declare @OrderIndex int    
 
 Select @OrderIndex=OrderIndex from DDASCommand where Uid=@Uid         
  if(@OrderIndex<@NewOrderIndex)        
    Begin        
    Update table set check=check-1 where check>@OrderIndex and check<=@NewOrderIndex        
    Update table set name=@name,check=@NewOrderIndex where id=@id  
    End        
  Else          
   Begin        
   Update table set check=OrderIndex+1 where check<@OrderIndex and check>=@NewOrderIndex        
   Update table set check=@NewOrderIndex,name=@name where id=@id           
 End  --------------------编程问答--------------------
引用 1 楼 lvxianda 的回复:
insert into table 
select id,name,max(id)+1
from table
CREATE Proc spprod
@Uid int, 
@name varchar(255),
@NewOrderIndex smallint
as  
 Declare @OrderIndex int    
 
 Select @OrderIndex=OrderIndex from DDASCommand where Uid=@Uid         
  if(@OrderIndex<@NewOrderIndex)        
    Begin        
    Update table set check=check-1 where check>@OrderIndex and check<=@NewOrderIndex        
    Update table set name=@name,check=@NewOrderIndex where id=@id  
    End        
  Else          
   Begin        
   Update table set check=OrderIndex+1 where check<@OrderIndex and check>=@NewOrderIndex        
   Update table set check=@NewOrderIndex,name=@name where id=@id           
 End 


红色部分不是自动编号啊 ! 我只是举例1、2、3...万一我ID不是1、2、3.呢   我想ischeck是1、2、3.。 --------------------编程问答-------------------- 难道我非得在程序里用个循环更新字段 ? --------------------编程问答--------------------
引用 2 楼 Issue_login 的回复:
Quote: 引用 1 楼 lvxianda 的回复:

insert into table 
select id,name,max(id)+1
from table
CREATE Proc spprod
@Uid int, 
@name varchar(255),
@NewOrderIndex smallint
as  
 Declare @OrderIndex int    
 
 Select @OrderIndex=OrderIndex from DDASCommand where Uid=@Uid         
  if(@OrderIndex<@NewOrderIndex)        
    Begin        
    Update table set check=check-1 where check>@OrderIndex and check<=@NewOrderIndex        
    Update table set name=@name,check=@NewOrderIndex where id=@id  
    End        
  Else          
   Begin        
   Update table set check=OrderIndex+1 where check<@OrderIndex and check>=@NewOrderIndex        
   Update table set check=@NewOrderIndex,name=@name where id=@id           
 End 


红色部分不是自动编号啊 ! 我只是举例1、2、3...万一我ID不是1、2、3.呢   我想ischeck是1、2、3.。

自动编号:
update tb set ischeck=tb1.ischeck from 
(select id,(select COUNT(*) from tb t2 where t1.id >= t2.id ) as ischeck from tb t1 ) as tb1 
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,