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

C# sql数据库如何查下一条记录

点查看下一条 就能从数据库中得到下一个记录 已绑定好了 就是SQL语句

补充:

可能大家还没完全明白我的意思 当我查一条记录以后 比如是001 然后我点查看下一条就会跳到数据库中下一条记录 然后绑定在TextBox里

追问:如何在我当前的数据往前一条呢?  比如我现在查的是004数据 如何获得003

答案:
用标识列  点下一条 ID就+1  上1条就-1
select top 1 * from 你的表 where 字段ID>1

怎么不用DataGridView来显示

首先获得当前选项的表示ID 然后在此ID上加一或者减一就是下一条记录,当然还有判断下一条是否存在以免读取异常。

我给你提供个思路,具体怎么做要看你的项目需求了~

你可以把查询条件查询出来的所有记录再单独存到一个视图中。

然后后台绑定这个视图的数据。

在按钮 查看上一条 查看下一条的单击事件分别 用this.MOVENEXT(); this.MOVEPRE(); 分别查看上一条,下一条。。

如果你会使用游标的话就很简单了,点击一次按钮就移动一下游标,然后把游标指定的数据输出就OK了。

直接使用DataTable

首先按条件把你的数据查出来 填充到DataTable里面,

在声明个公共变量 例如 int tmp=0;

当用户点击查询的时候你就读取tmp当前的记录..

我就先在这里写下代码把,, 没安vs有单词错了 没见怪 呵呵,,

private int tmp=0;//全局变量

///

//获取下调或上调记录方法

//

///

private void FillInfo()

{

TextBox1.text=dt.rows[tmp]["字段名"].ToString();//我这里只是个示例的 ,,你自己根据你的控件名称修改,,

//..........

}

当用户点上一条时候你将tmp-1 下一条时候讲tmp+1

tmp运算后在调用那个方法就行了,,...

注:dt也要声明为全局的, 填充DataTable用SqlDataAdapter 应该会把?

根据条件查找前后记录这个是存储过程,也可以改成SQL语句

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

-- =============================================
-- Author: 王倩
-- Create date: 2009-12-19
-- Description: 根据传入的ID参数,查找到它本身与上下两条记录
-- =============================================
ALTER PROCEDURE [dbo].[StaticPage_Dhgwy]
@nid int
AS
BEGIN
declare @count int
set @count=0
select @count=count(*) from WebSite_News where nid not in (select nid from WebSite_News where nid>=(@nid))
set @count=@count-1
select top 3 * from WebSite_News where nid not in (select top (@count) nid from WebSite_News order by nid) order by nid
END

这样的程序 如果是我 我会使用datatset 因为看样子你的数据量不会很大

1 DATASET 在绑定完毕数据库后 就会关闭连接

2 程序只会连接一次数据库

在程序 里面定一个以变量 记录当前DATASET的DATAROW 然后计算提取哪一条数据就行

如果 数据量很大的话 我会用DATAset缓存 前后20条左右数据.

+1再搜索不就行咯?

sqldataapdter fill datatable

datatable的datarow 一行行下去,显示一下就行 rows(0) .... rows(.rows.count)

把你和textbox的值获取出来做条件,一开始直接绑定第一条信息!

上一个:C#实现下拉菜单取值再截取符号
下一个:C#中怎么重写button让button显示为圆形

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,