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

歡迎訪問 生活随笔!

生活随笔

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

数据库

vb.net 教程 8-15 数据库操作实例1

發布時間:2023/12/9 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vb.net 教程 8-15 数据库操作实例1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

版權聲明:本文為博主原創文章,轉載請在顯著位置標明本文出處以及作者網名,未經作者允許不得用于商業目的。

因某個朋友提出的Treeview操作數據庫的問題,所以寫了本節的代碼。

本節代碼使用的是command來操作的,主要原因:

1是綁定的靈活性不高

2是treeview似乎不能綁定數據,因為最終的數據是由TreeNode來顯示的。

本節用到了羅斯文數據庫中的產品表、類別表、供應商表。

設計界面如下:

左側樹狀圖列出類別和該類下的產品,根據選擇的產品再將信息顯示到右側。

運行時如下圖:

設計時需要考慮的問題:

一是OleDbConnection的使用貫穿于整個程序,考慮在窗體載入時打開,窗體關閉時關閉Connection。

二是窗口載入時顯示出所有類別,使用 root1+類別ID 保存到Tag中。

三是為提高運行效率,在點擊類別時檢查是否下面有產品,如果沒有產品,那么將產品加入到類別下,而不是載入窗體就加入產品到類別下。產品節點使用 root2+產品ID保存到所在節點。

四是點擊樹狀圖節點的時候,根據Tag中不同的前綴(root1還是root2)來執行不同操作。

?

主要代碼如下:

加入窗體級變量:

Dim odc As OleDbConnection

窗體載入時,將所有類別名稱加入到樹狀圖:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Loadodc = New OleDbConnection()odc.ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0;data source=D:\save\博客教程\08 數據庫\Northwind.mdb"Dim sql As String = "select 類別id,類別名稱 from 類別"Dim sqlCmd As New OleDbCommand(sql, odc)Dim odReader As OleDbDataReaderodc.Open()Dim nd As TreeNodeodReader = sqlCmd.ExecuteReader()If odReader.HasRows ThenDo While odReader.Readnd = New TreeNodend.Text = odReader(1)nd.Tag = "root1" & odReader(0)TreeView1.Nodes.Add(nd)LoopEnd IfEnd Sub

點擊樹狀圖上面的節點:

Private Sub TreeView1_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClickDim nd As TreeNodend = e.NodeIf nd.Tag.ToString.Substring(0, 5) = "root1" ThenDim typeId As String = nd.Tag.ToString.Substring(5, 1)If nd.Nodes.Count = 0 ThenDim sql As String = "select 產品Id,產品名稱 from 產品 where 類別id=" & typeIdDim sqlCmd As New OleDbCommand(sql, odc)Dim odReader As OleDbDataReaderodReader = sqlCmd.ExecuteReader()Dim childNode As TreeNodeIf odReader.HasRows ThenDo While odReader.ReadchildNode = New TreeNodechildNode.Text = odReader(1)childNode.Tag = "root2" & odReader(0)nd.Nodes.Add(childNode)LoopEnd IfEnd IfTreeView1.CollapseAll()nd.Expand()ElseDim childNodeTag As String = nd.Tag.ToStringDim productId As String = childNodeTag.Substring(5, childNodeTag.Length - 5)Dim sql As String = "SELECT a.*, b.類別名稱,c.公司名稱FROM (產品 a inner join 類別 b on a.類別ID=b.類別ID)inner join 供應商 c on a.供應商ID=c.供應商ID where 產品id=" & productIdDim sqlCmd As New OleDbCommand(sql, odc)Dim odReader As OleDbDataReaderodReader = sqlCmd.ExecuteReader(CommandBehavior.SingleRow)odReader.Read()TextBox1.Text = odReader("產品名稱")TextBox2.Text = odReader("公司名稱")TextBox3.Text = odReader("類別名稱")TextBox4.Text = odReader("單位數量")TextBox5.Text = odReader("單價")TextBox6.Text = odReader("庫存量")TextBox7.Text = odReader("訂購量")TextBox8.Text = odReader("再訂購量")TextBox9.Text = IIf(odReader("中止"), "是", "否")End IfEnd Sub

窗體關閉時候,需要關閉數據庫連接:

Private Sub Form1_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closingodc.Close()End Sub

?

?

?

?

?

由于.net平臺下C#和vb.NET很相似,本文也可以為C#愛好者提供參考。

學習更多vb.net知識,請參看vb.net 教程 目錄

?

?

?

總結

以上是生活随笔為你收集整理的vb.net 教程 8-15 数据库操作实例1的全部內容,希望文章能夠幫你解決所遇到的問題。

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