VB.NET中LISTVIEW排序(原创-示例版)

本文介绍如何在VB.NET中使用ListView控件显示数据库数据,并实现排序功能。通过循环读取数据,利用ListView的Add方法添加数据项。排序通过监听ListView列点击事件,动态生成SQL语句实现数据的重新加载和排序。提供了完整源代码示例。
摘要由CSDN通过智能技术生成

VB.NET中ListView加载数据和排序功能的实现

        平时我们在VB.NET中开发数据库相关的程序都会用到DataGrid来显示数据,它的使用相对简单,也有排序的功能,基本能满一般的要求。但有时它并不能满足项目的功能需求,这时我们就想到了用ListView,虽然它的功能正是我们所要的,必竞它不是一个数据库的控件,不能像DataGrid那样通过简单的设置就可以显示数据,同时也没有排序的功能,这些就要我们自已用程序代码来实现了。前些天在开发一个项目时就写了一段使用ListView显示数据并实现排序的代码,简单地说一下它的实现原理:显示数据是通过循环读取数据记录,用ListView的Add方法将数据添加到ListView中;排序的功能是通过ListView列的点击事件来得到要排序的字段,再使用ORDER BY关键字组合SQL重新加载数据来实现排序的。欢迎使用VB.NTE的朋友一起交流,我的EMAIL是ztqas@126.com
   
    以下是程序所使用的数据库及控件的设置信息:

数据库名:Northwind(SQL SERVER 2000中自带的,如果没有此数据库请先建立)
表    名:Products(如果没有这个表,请使用后面附带的SQL语句建立)

窗 体 名:frmListViewDb

所用控件

Label    1个
属性:Text=ProductName:

-----------------------------------------------------

TextBox  1个
属性:Name=txtProductName

-----------------------------------------------------

Button   5个
(1) 属性:Name=btnFilter、Text=过滤
(2) 属性:Name=btnShowAll、Text=全部
(3) 属性:Name=btnSelAll、Text=全选
(4) 属性:Name=btnCancelSelAll、Text=取消全选
(5) 属性:Name=btnInsteadSel、Text=反选
(5) 属性:Name=btnInfo、Text=查看

ListView   1个
属性:Name=ListViewDb、View=Details、Sorting=None、GridLines=True,FullRowSelect=True,CheckBoxs=True,Size=856,416、Columns添加10个列,Width=150,Text分别为:ProductID,ProductName,SupplierID,CategoryID,QuantityPerUnit,UnitPrice,UnitsInStock,UnitsOnOrder,ReorderLevel,Discontinued

    源程序:
Imports System.Data.SqlClient
Public Class frmListViewDb
    Inherits System.Windows.Forms.Form

    '定义数据库连接对象
    Dim sdConn As New SqlConnection
    Dim conString As String = "data source=127.0.0.1;initial catalog=Northwind;uid=sa;password=123456"

    '定义记录db2ListView执行状态的变量
    Dim Dbr As Integer

    '定义记录默认排序方式的变量
    Dim mySort As String = "ASC"

    '定义记录默认排序字段的变量
    Dim myField As String = "ProductID"

    '定义记录上次排序的字段在LISTVIEW中的列ID的变量
    Dim pOrderID As Integer = 0

    '定义复选操作的相关变量
    Dim i As Integer
    Dim sCount As Integer

#Region " Windows 窗体设计器生成的代码 "

    Public Sub New()
        MyBase.New()

        '该调用是 Windows 窗体设计器所必需的。
        InitializeComponent()

        '在 InitializeComponent() 调用之后添加任何初始化

    End Sub

    '窗体重写 dispose 以清理组件列表。
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Windows 窗体设计器所必需的
    Private components As System.ComponentModel.IContainer

    '注意: 以下过程是 Windows 窗体设计器所必需的
    '可以使用 Windows 窗体设计器修改此过程。
    '不要使用代码编辑器修改它。
    Friend WithEvents txtProductName As System.Windows.Forms.TextBox
    Friend WithEvents btnFilter As System.Windows.Forms.Button
    Friend WithEvents btnShowAll As System.Windows.Forms.Button
    Friend WithEvents ListViewDb As System.Windows.Forms.ListView
    Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader
    Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader
    Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader
    Friend WithEvents ColumnHeader4 As System.Windows.Forms.ColumnHeader
    Friend WithEvents ColumnHeader5 As System.Windows.Forms.ColumnHeader
    Friend WithEvents ColumnHeader6 As System.Windows.Forms.ColumnHeader
    Friend WithEvents ColumnHeader7 As System.Windows.Forms.ColumnHeader
    Friend WithEvents ColumnHeader8 As System.Windows.Forms.ColumnHeader
    Friend WithEvents ColumnHeader9 As System.Windows.Forms.ColumnHeader
    Friend WithEvents ColumnHeader10 As System.Windows.Forms.ColumnHeader
    Friend WithEvents Label1 As System.Windows.Forms.Label
    Friend WithEvents btnSelAll As System.Windows.Forms.Button
    F

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值