自己動(dòng)手用代碼實(shí)現(xiàn)VB.NET ListView加載數(shù)據(jù)
VB.NET還是比較常用的,于是我研究了一下VB.NET ListView,在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用。平時(shí)我們?cè)赩B.NET中開(kāi)發(fā)數(shù)據(jù)庫(kù)相關(guān)的程序都會(huì)用到DataGrid來(lái)顯示數(shù)據(jù),它的使用相對(duì)簡(jiǎn)單,也有排序的功能,基本能滿(mǎn)一般的要求。但有時(shí)它并不能滿(mǎn)足項(xiàng)目的功能需求,這時(shí)我們就想到了用VB.NET ListView,雖然它的功能正是我們所要的,必競(jìng)它不是一個(gè)數(shù)據(jù)庫(kù)的控件,不能像DataGrid那樣通過(guò)簡(jiǎn)單的設(shè)置就可以顯示數(shù)據(jù),同時(shí)也沒(méi)有排序的功能,這些就要我們自已用程序代碼來(lái)實(shí)現(xiàn)了。
前些天在開(kāi)發(fā)一個(gè)項(xiàng)目時(shí)就寫(xiě)了一段使用VB.NET ListView顯示數(shù)據(jù)并實(shí)現(xiàn)排序的代碼,簡(jiǎn)單地說(shuō)一下它的實(shí)現(xiàn)原理:顯示數(shù)據(jù)是通過(guò)循環(huán)讀取數(shù)據(jù)記錄,用VB.NET ListView的Add方法將數(shù)據(jù)添加到ListView中;排序的功能是通過(guò)ListView列的點(diǎn)擊事件來(lái)得到要排序的字段,再使用ORDER BY關(guān)鍵字組合SQL重新加載數(shù)據(jù)來(lái)實(shí)現(xiàn)排序的。
以下是程序所使用的數(shù)據(jù)庫(kù)及控件的設(shè)置信息:
數(shù)據(jù)庫(kù)名:Northwind(SQL SERVER 2000中自帶的,如果沒(méi)有此數(shù)據(jù)庫(kù)請(qǐng)先建立)
表名:Products(如果沒(méi)有這個(gè)表,請(qǐng)使用后面附帶的SQL語(yǔ)句建立)
窗體名:frmListViewDb
- Imports System.Data.SqlClient
- Public Class frmListViewDb
- Inherits System.Windows.Forms.Form
- '定義數(shù)據(jù)庫(kù)連接對(duì)象
- Dim sdConn As New SqlConnection
- Dim conString As String = "data source=127.0.0.1;initial catalog=Northwind;uid=sa;password=123456"
- '定義記錄db2ListView執(zhí)行狀態(tài)的變量
- Dim Dbr As Integer
- '定義記錄默認(rèn)排序方式的變量
- Dim mySort As String = "ASC"
- '定義記錄默認(rèn)排序字段的變量
- Dim myField As String = "ProductID"
- '定義記錄上次排序的字段在LISTVIEW中的列ID的變量
- Dim pOrderID As Integer = 0
- '定義復(fù)選操作的相關(guān)變量
- Dim i As Integer
- Dim sCount As Integer
- #Region " Windows 窗體設(shè)計(jì)器生成的代碼 "
- Public Sub New()
- MyBase.New()
- '該調(diào)用是 Windows 窗體設(shè)計(jì)器所必需的。
- InitializeComponent()
- '在 InitializeComponent() 調(diào)用之后添加任何初始化
- End Sub
- '窗體重寫(xiě) 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
【編輯推薦】

















