首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2013-12-26 
Gridview 加载的列表中间插入值,操作数据库 如何插入及修改编号表格的格式如下:idnameischeck1jack12tony2

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 
[解决办法]

引用:
Quote: 引用:

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 

热点排行