JScript .NETVisual Basic 10Visual Basic 9 (2008)Visual Basic 8 (2005)WebForms.NET 3.0ADO.NETSQL Server 2008.NET 3.5HTMLIntermediateDevSQL ServerSQL.NETVisual BasicASP.NET
通用网格搜索和数据分页
通用网格搜索和数据分页说明。
引言
本文介绍了我认为非常有用的 DataFinder(用户控件)。
背景
- 问题,通常会提出以下要求
- 创建一个页面,用于显示 SQL 查询的记录列表。
- 启用网格分页,如果您获得了 1000000 条记录,并且所有这些信息都通过网络传输(如果数据库不在应用程序的同一服务器上),那么这些信息将被加载到应用程序服务器的内存中,在那里进行过滤,以获取我们真正想要查看的记录(当前页面)。所有这些都会导致性能不佳,但肯定,我们中的许多人已经以这种方式运行应用程序了。
- 最后,或者正如他们所说“锦上添花”,为这个网格添加一个通用的搜索功能。
- 分析。对于解决方案,我们必须
- 在存储过程中创建我们的 SQL 查询。
- 添加代码以获取查询数据。
- 创建一个
GridView
控件并自定义列以接收数据。 - 改进我们的存储过程,以添加参数,通过这些参数,我们发送数据在数据库中的分页信息。
- 最后,我们需要向存储过程添加更多功能,以接收发送搜索条件的参数。
- 解决方案。前面两点列出的所有内容都可以完成,但会花费大量时间,并且会根据系统进行演变,成为一项重复性任务。这时 DataFinder 用户控件就派上用场了。该控件简化了我们的所有工作,并进一步提高了我们的性能(在数据库中执行分页)。
Using the Code
您需要下载本文附带的解决方案,其中包含搜索代码以及如何使用的示例。
- 打开解决方案,搜索引擎位于 Controles 文件夹中。此控件使用的图像和 CSS 位于 CSS/Buscador 文件夹中(请尝试保持文件结构与示例中的一致,这样您就不必更改用户控件的样式表和图像路径)。
- 在 web.config 中,我们有连接到“AdventureWorks”数据库的 CNN 链接字符串。您可以从:AdventureWorks 下载此数据库。在此处提一下,我连接的是 SQL Server 2008 数据库。
- 创建您的 SQL 查询并将其存储在“Consultas”文件夹中,该文件夹与“Ejemplo.sql”文件位于同一目录(文件名不一定必须是 .sql 扩展名),格式建议如下。标识符“- $TART -”是表示查询开始位置的分隔符,您看到的内容之前是注释。
--------------------------------------------
-- Name: Kevin Guisbert Segales
-- Company: KDev
-- Date: 13/01/2010
-- Copyright 2010
-- La Paz - Bolivia
--------------------------------------------
-- $TART --
SELECT e.EmployeeID,
e.NationalIDNumber,
e.Title,
e.VacationHours
FROM HumanResources.Employee e
EnableEventValidation="false"
<link href="CSS/Buscador/Buscador.css" rel="stylesheet" type="text/css" />
Protected Sub Page_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
'- Inicializamos datos del buscador -
Me.Buscador1.Consulta = "Ejemplo.sql"
Me.Buscador1.Titulo = "Buscador Genérico"
Me.Buscador1.OrderBy = "Title"
Me.Buscador1.DataBind()
End If
End Sub
其中
Consulta
是包含查询的文件的名称,位于“Consultas”文件夹中(必需)。Titulo
是将在控件中显示的标题(可选)。OrderBy
是用于排序查询的字段名称(必需)。DataBind()
是继续绑定的方法(必需)。
希望这个控件能有所帮助。我将很快对这个控件进行增强。
关注点
此应用程序经过测试使用
- Windows XP SP3
- Internet Explorer 6
- Visual Studio 2008
- SQL Server 2008