记录列表页有一个选类型选项:包括内容有:党政、工会、团委,点击某条记录后,进入详细内容页,传递的值有二个:一个是:类型(即:党政、工会、团委),另一个是记录ID
,现在的问题是,如果在ado.net中操纵同时符合这两个条件的记录,即选择:党政类型的记录,并在详细页面中点击“上一条”、“下一条”按钮,在符合记录类型的前提下,找到当前记录的上一条,和下一条记录,因为记录的排序是混乱的,没有规律,那么假设:如何在详细页里找到符合类型为“党政”的ID号为'5'的上一条“党政”的记录(ID为3),或者下一条“党政”的记录(ID为7)呢?????
因为记录的形式可能如下:
ID 类型
--------------
3 党政
4 工会
5 党政
6 团委
7 党政
要根据ID字段和类型,进行上一条,下一样的显示,谢谢
下面是显示数据的代码,请大家帮助。。。。。
Sub Show()
Dim strSQL As String
strSQL = "SELECT * FROM table_A where 类型='党政' AND id=" & Request.QueryString("id")
Dim objAdpt As New SqlDataAdapter(strSQL, objConn)
Dim DS As New DataSet
objAdpt.Fill(DS, "dsView")
lbl1.Text = DS.Tables("dsView").Rows(0).Item("recorder")
lbl2.Text = DS.Tables("dsView").Rows(0).Item("other")
End Sub
19 个解决方案
#1
up没有看明白
#2
你应该执行2次select,分别得到上一条和下一条
比如得到上一条可以这样写
strSQL = "SELECT top 1 * FROM table_A where 类型='党政' AND id<" & Request.QueryString("id") & " Order by id desc"
下一条
strSQL = "SELECT top 1 * FROM table_A where 类型='党政' AND id>" & Request.QueryString("id") & " Order by id asc"
比如得到上一条可以这样写
strSQL = "SELECT top 1 * FROM table_A where 类型='党政' AND id<" & Request.QueryString("id") & " Order by id desc"
下一条
strSQL = "SELECT top 1 * FROM table_A where 类型='党政' AND id>" & Request.QueryString("id") & " Order by id asc"
#3
参考下面的存储过程
create procedure getCurIDPreNext(@type varchar(20),@id int)
as
begin
select (select top 1 id from table_A where 类型=@type and id<@id order by id desc)preid,
(select top 1 id from table_A where 类型=@type and id>@id order by id asc)nextid
end
return
执行 getCurIDPreNext '你的类型','你的id' 得到preid,nextid
create procedure getCurIDPreNext(@type varchar(20),@id int)
as
begin
select (select top 1 id from table_A where 类型=@type and id<@id order by id desc)preid,
(select top 1 id from table_A where 类型=@type and id>@id order by id asc)nextid
end
return
执行 getCurIDPreNext '你的类型','你的id' 得到preid,nextid
#4
up
#5
up
#6
up
#7
不知楼主想说什么,没看清楚!
呵呵,帮顶一下!
呵呵,帮顶一下!
#8
up
#9
存储过程是什么东东阿
老听师傅提起
俺不明白
老听师傅提起
俺不明白
#10
up
#11
真不怎么明白楼主的意思。能不能举个例子.好帮帮你。
#12
ding...
#13
up
#14
i just like it
#15
up
#16
学习!!!
#17
关注!
#18
继续关注~~!~!~!`
#19
up
#20
#1
up没有看明白
#2
你应该执行2次select,分别得到上一条和下一条
比如得到上一条可以这样写
strSQL = "SELECT top 1 * FROM table_A where 类型='党政' AND id<" & Request.QueryString("id") & " Order by id desc"
下一条
strSQL = "SELECT top 1 * FROM table_A where 类型='党政' AND id>" & Request.QueryString("id") & " Order by id asc"
比如得到上一条可以这样写
strSQL = "SELECT top 1 * FROM table_A where 类型='党政' AND id<" & Request.QueryString("id") & " Order by id desc"
下一条
strSQL = "SELECT top 1 * FROM table_A where 类型='党政' AND id>" & Request.QueryString("id") & " Order by id asc"
#3
参考下面的存储过程
create procedure getCurIDPreNext(@type varchar(20),@id int)
as
begin
select (select top 1 id from table_A where 类型=@type and id<@id order by id desc)preid,
(select top 1 id from table_A where 类型=@type and id>@id order by id asc)nextid
end
return
执行 getCurIDPreNext '你的类型','你的id' 得到preid,nextid
create procedure getCurIDPreNext(@type varchar(20),@id int)
as
begin
select (select top 1 id from table_A where 类型=@type and id<@id order by id desc)preid,
(select top 1 id from table_A where 类型=@type and id>@id order by id asc)nextid
end
return
执行 getCurIDPreNext '你的类型','你的id' 得到preid,nextid
#4
up
#5
up
#6
up
#7
不知楼主想说什么,没看清楚!
呵呵,帮顶一下!
呵呵,帮顶一下!
#8
up
#9
存储过程是什么东东阿
老听师傅提起
俺不明白
老听师傅提起
俺不明白
#10
up
#11
真不怎么明白楼主的意思。能不能举个例子.好帮帮你。
#12
ding...
#13
up
#14
i just like it
#15
up
#16
学习!!!
#17
关注!
#18
继续关注~~!~!~!`
#19
up