1、首先打開Visual Studio 2008代碼窗口,添加引用。
創新互聯建站專注于科爾沁左翼網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供科爾沁左翼營銷型網站建設,科爾沁左翼網站制作、科爾沁左翼網頁設計、科爾沁左翼網站官網定制、小程序定制開發服務,打造科爾沁左翼網絡公司原創品牌,更為您提供科爾沁左翼網站排名全網營銷落地服務。
2、輸入以下代碼:Public conn1 ?As SqlConnection = New SqlConnection 。
3、聲明關鍵字 Public;(因為是全局變量,所以用Public 來聲明)。
4、如果SQL 數據庫就在本機,則用以下代碼連接。
5、如果代碼太長,影響可讀性,可以用空格加"_"后,回車換行即可。
如果樓主熟悉VB6,可以直接在項目中添加ADODB的Com引用,這樣你就可以像VB6那樣操作數據庫了!
另外
.NET
Framework中連接數據庫要用到ADO.NET。如果要操作Access數據庫,要用到System.Data.OleDb命名空間下的許多類。
比如按樓主所說,“我想在textbox1中顯示表一中【一些數據】字段下的第一個內容”:
'首先導入命名空間
Imports
System.Data
Imports
System.Data.OleDb
'然后在某一個事件處理程序中寫:
Dim
conn
As
New
OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=數據庫.accdb;Jet
OLEDB:Database
Password=MyDbPassword")
Dim
command
As
New
OleDbCommand("Select
*
From
數據表",
conn)
conn.Open()
'打開數據庫連接
Dim
reader
As
OleDbDataReader
=
command.ExecuteReader()
'執行SQL語句,返回OleDbDataReader
對象
Do
While
reader.Read()
'讀取一條數據
textbox1.Text
+=
reader("一些數據")
VbCrLf
Loop
reader.Close()
'關閉OleDbDataReader
conn.Close()
'關閉連接
我們先簡單的了解一下什么是消息隊列(MSMQ)?消息隊列是 Windows (NT也有MSMQ WIN / /me/xp不含消息隊列服務但是支持客戶端的運行)操作系統中通訊的基礎 也是用于創建分布式 松散連接通訊應用程序的工具 這些應用程序可以通過不同種類的網絡進行通訊 也可以與脫機的計算機通訊 消息隊列分為用戶創建隊列和系統隊列 用戶隊列分為
· 公共隊列 在整個可傳遞消息的 消息隊列 網絡中復制并傳輸 并且有可能由網絡連接的所有站點訪問
· 專用隊列 不在整個網絡中發布 相反 它們僅在所駐留的本地計算機上可用 專用隊列只能由知道隊列的完整路徑名或標簽的應用程序訪問
· 管理隊列 包含確認在給定 消息隊列 網絡中發送的消息回執的消息 指定希望 MessageQueue 組件使用的管理隊列
· 響應隊列 包含目標應用程序接收到消息時返回給發送應用程序的響應消息 指定希望 MessageQueue 組件使用的響應隊列
系統隊列分為
· 日記隊列 可選地存儲發送消息的副本和從隊列中移除的消息副本
· 死信隊列 存儲無法傳遞或已過期的消息的副本
· 專用系統隊列 是一系列存儲系統執行消息處理操作所需的管理和通知消息的專用隊列
現在大家對消息隊列有了簡單的了解后 就該進入主題了 要使用m *** q進行軟件開發需要安裝m *** q 安裝完后就該進入實際的開發階段 先打開vs net ide中的 服務起資源管理器 展開你想建立消息隊列的計算機名 再展開 消息隊列 右擊它在彈出菜單中選擇 新建 建立一個新的消息隊列 并為它指定一個名字 這個名字可以隨意 也可以通過編程來完成 代碼如下
system Messaging MessageQueue Create( \Private$\MyPrivateQueue ) 建立專用隊列System Messaging MessageQueue Create( myMachine\MyQueue ) 建立公共隊列
其實我認為使用那中方法并不重要 重要的是搞清楚專用隊列和公共隊列的差別(其他隊列不是必須的) 在本例中是通過 服務器資源管理器 分別在服務器上建立了專用隊列和公共隊列
程序功能 本程序分為兩部分包括服務器程序(安裝在sql server服務器上)和客戶端程序 客戶端的作用是用來編寫t sql語句并將t sql語句放在消息中 并將消息發送到sql server服務器上的消息隊列中去 服務器程序檢查指定的消息隊列當發現有新消息到達時 就開始執行消息中的內容 由于消息中的內容是t sql語句所以服務器端實際上是執行對數據庫的操作
客戶端程序
public Sub client()Dim tM As New System Messaging MessageQueue()tM Path = \Private$\jk FORMATNAME:PUBLIC= d dc c fd ce d b e d 與指定計算機中的消息隊列建立連接 Dim newMessage As New System Messaging Message(TextBox Text) 接受文本筐的t sql語句newMessage Label = This is the label 消息名字 tM Send(newMessage) 發送消息End Sub
服務端程序
public Sub server()Dim NewQueue As New System Messaging MessageQueue( \Private$\jk ) FORMATNAME:PUBLIC= d dc c fd ce d b e d 與指定計算機中的消息隊列建立連接 Dim m As System Messaging Message 查看消息隊列中的消息m = NewQueue Receive m Formatter = New System Messaging XmlMessageFormatter(New String() { System String mscorlib })Dim st As Stringst = m Body 消息隊列中消息的消息內容 既sql語句Dim con As New OleDb OleDbConnection( 輸入自己的數據庫連接字符串 )con Open()Dim As New OleDb OleDbCommand(st con) 執行消息中的sql語句 ExecuteNonQuery()con Close()End Sub
我為什么要使用消息隊列來處理數據庫的操作這個問題我一直沒回答 現在我就來回答這個問題 在本程序中你會發現在sub client()中我并沒連接數據庫和請求數據 而是通過發消息來操作數據庫的 這個好處是節省了兩部分時間
對數據庫連解請求數據的時間
從數據庫返回數據的時間
在很多情況下其實我們并不需要看見具體的數據就知道該怎么修改數據庫中的數據 例如要刪除張三的記錄 就可以將一條簡單的刪除語句放入消息中 發給服務器讓服務器程序去處理對數據的更改
此外消息隊列的另一個主要用途也就是當前erp軟件中必不可少的 就是在斷開連接時保存信息 當連接恢復時發送消息 消息在如下兩種情況中無法迅速地傳遞到它們的隊列 當隊列駐留的計算機無法工作時 或當路由消息所需的域控制器無法工作時 消息隊列 可讓您應對這些情況 使得在從網絡上斷開連接或必要的計算機或控制器無法工作時 仍可以繼續發送消息 在這些情形下 消息暫時存儲在本地計算機或傳遞路由上的某個計算機的隊列中 直到完成傳遞所需的資源重新聯機
例如 假設有一個記錄所有在出差的銷售人員發送的訂單的中央隊列 這些銷售人員每天的大部分時間都以斷開連接的方式工作 記錄來自客戶站點的訂單信息 并且每天撥號連接一次 將所有這些信息傳輸到中央隊列中 因為消息在發送方斷開連接時仍可發送到隊列 所以銷售人員可以在記錄客戶信息時立即發送他們的消息 但系統會緩存這些消息直到晚間進行撥號連接為止
在斷開連接時要怎么保存消息呢?向斷開連接的隊列發送消息同向可用隊列發送消息的過程幾乎完全相同 當要向其發送的隊列不可用時 不必進行任何特殊的配置以使組件將消息存儲在臨時隊列中 在client代碼的tM Path = \Private$\jk 后面有一條注釋語句 其實這條語句就是實現向斷開連接的隊列發送消息的功能 只要將tM Path = \Private$\jk 這條語句換成tM Path = FORMATNAME:PUBLIC= d dc c fd ce d b e d 其中PUBLIC后面的數字是要發送到計算機的guid數字 這個數字可以打開那臺計算機的消息隊列的屬性看見 使用這種方法就可以在斷開連接的情況下保證對服務器的操作是有效 現在運行這個程序后 打開win 中的 開始 》 程序 》 管理工具 》 計算機管理 在 計算機管理 窗口中展開 服務和應用程序 》 消息隊列 》 傳出隊列 你將在右邊的窗口中看見你建立的消息 (如果你使用tM Path = \Private$\jk 語句 在 計算機管理 窗口中展開 服務和應用程序 》 消息隊列 》 專用隊列 可以看見你建立的隊列 )
其實消息隊列的編程并不復雜 但它在網絡環境的程序開發中是非常有用的 可以簡化大量的開發過程和節省開發時間
其實消息隊列的編程有很大的靈活性 幾乎可以解決網絡編程的大部分問題 比如聊天程序 遠程控制程序
本文針對消息隊列做了一個簡單的介紹 并舉了一個例來說明怎么在 net下使用消息編程 達到快速高效穩定的對數據庫進行操作 最后補充要說的是在internet中也一樣可以使用消息隊列 只需要將tM Path = FORMATNAME:PUBLIC= d dc c fd ce d b e d 語句后面的數字變成消息隊列所在服務器的數字就可以了 但是要提醒大家的是使用消息在傳輸時將占有大量的帶寬 所以在不是必須的時候 internet下的編程不要使用消息
lishixinzhi/Article/program/net/201311/15668
參考一下下面這段代碼就可以了。
Imports System.Data
'引入數據庫操作類命名空間
Imports System.Data.OleDb
'引入ADO.NET操作命名空間
Public Class FrmModifystInfo
Inherits System.Windows.Forms.Form
Public ADOcmd As OleDbDataAdapter
Public ds As DataSet = New DataSet()
'建立DataSet對象
Public mytable As Data.DataTable
'建立表單對象
Public myrow As Data.DataRow
'建立數據行對象
Public rownumber As Integer
'定義一個整型變量來存放當前行數
Public SearchSQL As String
Public cmd As OleDbCommandBuilder
'======================================================
#Region " Windows 窗體設計器生成的代碼 "
#End Region
'======================================================
Private Sub FrmModifystInfo_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
'窗體的載入
TxtSID.Enabled = False
TxtName.Enabled = False
ComboSex.Enabled = False
TxtBornDate.Enabled = False
TxtClassno.Enabled = False
TxtRuDate.Enabled = False
TxtTel.Enabled = False
TxtAddress.Enabled = False
TxtComment.Enabled = False '設置信息為只讀
Dim tablename As String = "student_Info "
SearchSQL = "select * from student_Info "
ExecuteSQL(SearchSQL, tablename) '打開數據庫
ShowData() '顯示記錄
End Sub
Private Sub ShowData()
'在窗口中的textbox中顯示數據
myrow = mytable.Rows.Item(rownumber)
TxtSID.Text = myrow.Item(0).ToString
TxtName.Text = myrow.Item(1).ToString
ComboSex.Text = myrow.Item(2).ToString
TxtBornDate.Text = Format(myrow.Item(3), "yyyy-MM-dd ")
TxtClassno.Text = myrow.Item(4).ToString
TxtTel.Text = myrow.Item(5).ToString
TxtRuDate.Text = Format(CDate(myrow.Item(6)), "yyyy-MM-dd ")
TxtAddress.Text = myrow.Item(7).ToString
TxtComment.Text = myrow.Item(8).ToString
End Sub
Private Sub BtFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtFirst.Click
'指向第一條數據
rownumber = 0
ShowData()
End Sub
Private Sub BtPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtPrev.Click
'指向上一條數據
BtNext.Enabled = True
rownumber = rownumber - 1
If rownumber 0 Then
rownumber = 0 '如果到達記錄的首部,行號設為零
BtPrev.Enabled = False
End If
ShowData()
End Sub
Private Sub BtNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtNext.Click
'指向上一條數據
BtPrev.Enabled = True
rownumber = rownumber + 1
If rownumber mytable.Rows.Count - 1 Then
rownumber = mytable.Rows.Count - 1 '判斷是否到達最后一條數據
BtNext.Enabled = False
End If
ShowData()
End Sub
Private Sub BtLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtLast.Click
'指向最后一條數據
rownumber = mytable.Rows.Count - 1
ShowData()
End Sub
Private Sub BtDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtDelete.Click
mytable.Rows.Item(rownumber).Delete() '刪除記錄
If MsgBox( "確定要刪除改記錄嗎? ", MsgBoxStyle.OKCancel + vbExclamation, "警告 ") = MsgBoxResult.OK Then
cmd = New OleDbCommandBuilder(ADOcmd)
'使用自動生成的SQL語句
ADOcmd.Update(ds, "student_Info ")
BtNext.PerformClick()
End If
End Sub
Private Sub BtModify_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtModify.Click
TxtSID.Enabled = False '關鍵字段只讀
TxtName.Enabled = True '可讀寫
ComboSex.Enabled = True
TxtBornDate.Enabled = True
TxtClassno.Enabled = True
TxtRuDate.Enabled = True
TxtTel.Enabled = True
TxtAddress.Enabled = True
TxtComment.Enabled = True
End Sub
Private Sub BtUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtUpdate.Click
If Not Testtxt(TxtName.Text) Then
MsgBox( "請輸入姓名! ", vbOKOnly + vbExclamation, "警告 ")
TxtName.Focus()
Exit Sub
End If
If Not Testtxt(ComboSex.Text) Then
MsgBox( "請選擇性別! ", vbOKOnly + vbExclamation, "警告 ")
ComboSex.Focus()
Exit Sub
End If
If Not Testtxt(TxtClassno.Text) Then
MsgBox( "請選擇班號! ", vbOKOnly + vbExclamation, "警告 ")
TxtClassno.Focus()
Exit Sub
End If
If Not Testtxt(TxtTel.Text) Then
MsgBox( "請輸入聯系電話! ", vbOKOnly + vbExclamation, "警告 ")
TxtTel.Focus()
Exit Sub
End If
If Not Testtxt(TxtAddress.Text) Then
MsgBox( "請輸入家庭住址! ", vbOKOnly + vbExclamation, "警告 ")
TxtAddress.Focus()
Exit Sub
End If
If Not IsNumeric(Trim(TxtSID.Text)) Then
MsgBox( "請輸入數字學號! ", vbOKOnly + vbExclamation, "警告 ")
Exit Sub
TxtSID.Focus()
End If
If Not IsDate(TxtBornDate.Text) Then
MsgBox( "出生時間應輸入日期格式(yyyy-mm-dd)! ", vbOKOnly + vbExclamation, "警告 ")
Exit Sub
TxtBornDate.Focus()
End If
If Not IsDate(TxtRuDate.Text) Then
MsgBox( "入校時間應輸入日期格式(yyyy-mm-dd)! ", vbOKOnly + vbExclamation, "警告 ")
TxtRuDate.Focus()
Exit Sub
End If
myrow.Item(0) = Trim(TxtSID.Text)
myrow.Item(1) = Trim(TxtName.Text)
myrow.Item(2) = Trim(ComboSex.Text)
myrow.Item(3) = Trim(TxtBornDate.Text)
myrow.Item(4) = Trim(TxtClassno.Text)
myrow.Item(5) = Trim(TxtTel.Text)
myrow.Item(6) = Trim(TxtRuDate.Text)
myrow.Item(7) = Trim(TxtAddress.Text)
myrow.Item(8) = Trim(TxtComment.Text)
mytable.GetChanges()
cmd = New OleDbCommandBuilder(ADOcmd)
'使用自動生成的SQL語句
ADOcmd.Update(ds, "student_Info ")
'對數據庫進行更新
MsgBox( "修改學籍信息成功! ", vbOKOnly + vbExclamation, "警告 ")
TxtName.Enabled = False
ComboSex.Enabled = False
TxtBornDate.Enabled = False
TxtClassno.Enabled = False
TxtRuDate.Enabled = False
TxtTel.Enabled = False
TxtAddress.Enabled = False
TxtComment.Enabled = False '重新設置信息為只讀
End Sub
Private Sub BtCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtCancel.Click
TxtSID.Enabled = False
TxtName.Enabled = False
ComboSex.Enabled = False
TxtBornDate.Enabled = False
TxtClassno.Enabled = False
TxtRuDate.Enabled = False
TxtTel.Enabled = False
TxtAddress.Enabled = False
TxtComment.Enabled = False
End Sub
Public Function ExecuteSQL(ByVal SQL As String, ByVal table As String)
Try
'建立ADODataSetCommand對象
'數據庫查詢函數
ADOcmd = New OleDbDataAdapter(SQL, "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\student.mdb ")
'建立ADODataSetCommand對象
ADOcmd.Fill(ds, table) '取得表單
mytable = ds.Tables.Item(0) '取得名為table的表
rownumber = 0 '設置為第一行
myrow = mytable.Rows.Item(rownumber)
'取得第一行數據
Catch
MsgBox(Err.Description)
End Try
End Function
End Class
本文名稱:Vb.Net數據庫 vbnet數據庫編程
分享地址:http://m.newbst.com/article28/doojjcp.html
成都網站建設公司_創新互聯,為您提供品牌網站建設、服務器托管、全網營銷推廣、云服務器、網站營銷、標簽優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯