65.9K
CodeProject 正在变化。 阅读更多。
Home

通用网格搜索和数据分页

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.55/5 (7投票s)

2010年1月25日

CPOL

3分钟阅读

viewsIcon

37019

downloadIcon

934

通用网格搜索和数据分页说明。

DataFinder_article

引言

本文介绍了我认为非常有用的 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
  • 创建一个 ASPX 页面。在本例中,我们有一个名为“Default.aspx”的页面,您必须在该页面中添加以下文件头属性
  • EnableEventValidation="false"
  • 在 Head 部分,添加页面样式表的引用
  • <link href="CSS/Buscador/Buscador.css" rel="stylesheet" type="text/css" />
  • 将用户控件“Buscador.ascx”拖到您的页面上。
  • 在代码隐藏中,添加以下属性
  • 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
© . All rights reserved.