日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 视图树查询_TreeView (树视图)遍历数据库的方法

發布時間:2023/12/2 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 视图树查询_TreeView (树视图)遍历数据库的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

多數從事數據庫編程人員都經歷過,對新接觸的數據庫技術無論是低版本Foxbase、Access97-2000還是支持網絡環境高版本的Sql Server2000和 Oracel等系統,都經過一個循循漸進、吃苦耐勞學習過程,達到知識技術從量變到質變的過程,才能把數據庫編程水平提高一步。

本文介紹TreeView(樹視圖) 遍歷SQL Server2000數據庫的方法及實現過程,在這個過程中利用TreeView(樹視圖)控件的設置、定義、賦值將數據庫的表名顯示在TreeView(樹視圖)中,詳見-[圖1];同時提供數據庫編程朋友們有一個對數據庫加深理解、加深認識、大膽實踐、舉一反三的過程,具體分四個部分進行介紹:

一、數據庫字典信息;二、在VB6.0中實現TreeView(樹視圖)遍歷數據庫的方法;

三、用ListView控件顯示表記錄的技巧;四、小結;

內容如下:

[圖1]

一、數據庫字典信息

動態的數據庫系統內部,均有負責監控各個表、過程存儲的【創建-刪除】及表中字段【編輯-增、刪、改】變化信息的文件,筆者稱為:數據庫字典。細心的朋友會注意到:在Sql Server2000數據庫下,凡打開一個數據庫,就會發現一個名稱:sysobjects的系統文件,它在我們創建一個表或刪除一個表操作變化過程中,它會認真記錄下,[包括文件分類:系統和用戶]相關信息,其中以下兩個字段對我們本文內容的介紹是個關鍵;字段名為:①.Name[定義:sysname,128-寬度,[屬性]:不允許空] ②.Xtype[定義: Char,2-寬度,[屬性]:不允許空]。請見-[圖 2]下面是在SQLServe2000 查詢窗口上,調用這個sysobjects文件顯示的圖例。

二、在VB6.0中實現TreeView(樹視圖)遍歷數據庫的方法

由于我們使用的Sql Server2000的數據庫系統,主要是對‘表’ (二維表[列,行])進行操作;筆者采用的方法是用VB6.0通過ADO方式與SERVER2000數據庫進行連接,打開[數據庫字典sysobjects],取出Name字段的內容,同時,將內容裝入樹視圖TreeView控件中,顯示在窗體的左側。具體步驟:

1>.窗體組成和布局

*.主要組成:

①.TreeView控件,名稱:TreeView1;??? ②.ListView控件,名稱:LV1

③CommandButton控件,名稱:Command2; ④.ImageLIst控件, 名稱:ImageList1

⑤.TextBox 控件,名稱:Text1;??????? ⑥.TextBox控件,名稱:Text2

*.布局:

如圖1所示,處于左、右兩面的TreeView控件和ListView控件是分別存放數據庫全部表名;數據庫表的全部記錄;窗體底部的兩個文本框分別是顯示數據庫表的個數和打開表后記錄的總數;命令按鈕是執行TreeView(樹視圖)遍歷數據庫的按鈕;ImageList控件是裝入表名前的圖片控件。

2>.數據庫的連接

請看下列代碼:

Private Sub Form_Load() '在窗體入口

If Not SqlOpenADOConnection(m_Cnn) Then Exit Sub

'用一條條件語句與Server2000數據庫連接

SQL End Sub

*.bas ’在模塊中響應窗體過程調用代碼;

Option Explicit???????? '一些 ADO 常數定義:

Public Const adOpenStatic = 3

Public Const adOpenKeyset = 1

Public Const adLockOptimistic = 3

Public Const adLockBatchOptimistic = 4

Public Function SqlOpenADOConnection(pCnn As Object) As Boolean

On Error GoTo ErrorHandler

Set pCnn = CreateObject("ADODB.Connection")?'對數據庫連接方式

pCnn.Open"Provider=sqloledb;DataSource=NEDTWO-56958BFB;UserID=sa;pwd=;Initial Catalog=NorthWind"

SqlOpenADOConnection = True

Exit Function

……????????????? '略

End Function

3>.變量定義和樹視圖TreeView控件的初始

請看下列代碼:

*>.窗體的變量定義:

Dim Ssql1 As String

Dim nodx As Node

Dim SQl, Str1 As String?'定義字符串

Dim K, P, Q?As Integer '定義字符的長度

Dim No_01 As Integer

Private m_Cnn As Object ' ADODB連接

*>.初始TreeView控件

Private Sub Form_Load()

TreeView1.LineStyle = tvwTreeLines????????? '在兄弟節點和父節點之間顯示線

TreeView1.ImageList = ImageList1???????????'鏈接圖像列

TreeView1.Style = tvwTreelinesPlusMinusPictureText

End Sub

4>.樹視圖TreeView遍歷數據庫的方法

命令按鈕代碼(以下的代碼完成了圖1左面樹視圖TreeView遍歷數據庫效果):

Private Sub Command2_Click()

Dim Rs_Table As New ADODB.Recordset

Dim i As Integer

Text1.Text = ""

TreeView1.Sorted = True

Set nodx = TreeView1.Nodes.Add(, , "數據庫信息", "數據庫信息", 1)

nodx.Text = "數據庫信息"

nodx.Tag = "請雙擊文件夾"

nodx.Image = "close"

Rs_Table.CursorLocation = adUseClient

'取得到所有[用戶級]表名

Rs_Table.Open "SELECT name From sysobjects WHERE?xtype = 'u'",?_

m_Cnn, adOpenDynamic, adLockReadOnly

Rs_Table.MoveFirst

No_01 = 0

Do While Not Rs_Table.EOF

No_01 = No_01 + 1

Str1 = CStr(No_01) + "-" + Rs_Table.Fields("name")

Set nodx = TreeView1.Nodes.Add(1, tvwChild, Str1 & " id", Str1, 1)

Text1.Text = CStr(No_01)

Rs_Table.MoveNext

Loop

Rs_Table.Close

For i = 1 To TreeView1.Nodes.Count

TreeView1.Nodes(i).Expanded = True '展開所有節點

Next i

Set Rs_Table = Nothing

End Sub

三、用ListView顯示表記錄的技巧

這里為了讓數據庫編程朋友們加深對SQLServer2000的理解與認識,在下面給出執行[用鼠標單擊‘表名’],屏幕的右方ListView將顯示表全部記錄;在此調用的過程中,筆者將描述:【表的字段類型;字段寬度;字段實際寬度的格式,在代碼(2).中間標有Debug.Print的兩行列出】此段代碼對研究數據庫結構技術的朋友們有實用價值。請看下列代碼:

(1). [用鼠標單擊‘表名’]后的代碼

Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)

Dim RS As New ADODB.Recordset??? '定義數據集

Dim K, W, i As Integer

Ssql1 = ""

Ssql1 = Node.Text

K = Len(Ssql1)

W = 1

For W = 1 To K

If Mid(Ssql1, W, 1) = "-" Then

Ssql1 = Mid(Ssql1, W + 1, K - W)

Exit For

End If

Next W

'本循環為了剔除在TreeView中數據庫表的編號及'-',適應表名調用。

If Ssql1 = "數據庫信息" Then

'TreeView收起所有節點[單擊--收起|雙擊--展開]

For i = 1 To TreeView1.Nodes.Count

TreeView1.Nodes(i).Expanded = False

Next i

Exit Sub

End If

Q = 0

If Len(Ssql1) > 0 Then

RS.Open Ssql1, m_Cnn

If RS.Fields.Count > 0 Then

listrec RS, LV1

RS.Close

End If

End If

Set RS = Nothing

End Sub

(2)。右方ListVie w將顯示表全部記錄的代碼

Sub listrec(ByRef RS As Recordset, ByRef LV1 As ListView)

'將選中的記錄集(含字段名)顯示在ListView中

Dim head As ColumnHeader

Dim Item As ListItem

Dim i As Integer

K = 0???????????????????????????? '初始化listview的某些屬性

LV1.View = lvwReport

LV1.GridLines = True

LV1.LabelEdit = lvwManual

LV1.ListItems.Clear

LV1.ColumnHeaders.Clear

For i = 0 To RS.Fields.Count - 1?'處理ListView的表頭-字段名

Set head = LV1.ColumnHeaders.Add

head.Text = RS.Fields(i).Name

Debug.Print CStr(i), head.Text, "A=", FieldType(RS.Fields(i).Type)

Debug.Print

CStr(i),"B=",RS.Fields(i).DefinedSize,"C-", RS.Fields(i).ActualSize

Next

While Not RS.EOF?????????????????? '裝入該表的所有記錄

Set Item = LV1.ListItems.Add

Item.Text = "" & RS.Fields(0).Value

For i = 1 To RS.Fields.Count - 1

Item.SubItems(i) = "" & RS.Fields(i).Value

Next

K = K + 1

RS.MoveNext

Wend

Text2.Text = ""

Text2.Text = CStr(K)

End Sub

四、小結

---- 1.從以上對TreeView(樹視圖)遍歷數據庫方法的介紹,僅起一個拋磚引玉作用,希望編程愛好者、朋友們多提寶貴意見,借【軟件報】的技術平臺多交流經驗、互幫互學、共同提高。

---- 2.特別值得一提的是,文中提到的與數據庫連接方式,采用了在應用軟件的窗體裝入時,以一個帶參數的函數調用來實現的。我也是近期才開始這樣連接數據庫。覺得既方便又簡練;擺脫了過去進入系統就打開數據庫,退出時關閉數據庫的方式,缺乏條理性,浪費語句不少,請大家多提寶貴意見。

----3.文中代碼部分有Debug.print ……, FieldType(RS.Fields(i).Type)語句是一個過程調用,它的作用是將字段的類型代號轉換為類型字符。(如:代號=3;INT)方便閱讀。此段過程代碼可在網上查詢或與筆者聯系提供。

---- 4.文中沒有對TreeViee(樹視圖)和ListView的使用做過多的介紹;我想,編程的朋友,只要用實例串幾次,來個舉一反三、就會完全掌握。此處不做過多贅述。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的mysql 视图树查询_TreeView (树视图)遍历数据库的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。