以下是完整模塊

創(chuàng)新互聯(lián)從2013年成立,先為嶺東等服務建站,嶺東等地企業(yè),進行企業(yè)商務咨詢服務。為嶺東企業(yè)網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
Imports?System.Data
Imports?System.IO
Imports?System.Data.OleDb
Module?Module1
Public?cn?As?New?OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data?Source=C:\ACCESS數(shù)據庫.mdb")?'定義連接---這里請更改為實際數(shù)據庫路徑及名稱
Public?DataBaseRST?As?Integer?'用來返回數(shù)據庫執(zhí)行結果
Public?Function?DataModify(ByVal?str?As?String)?As?Boolean?'進行數(shù)據庫修改操作函數(shù)
Dim?cmdinsert?As?New?OleDbCommand
Try
cmdinsert.CommandText?=?str
cmdinsert.Connection?=?cn
If?cn.State?=?ConnectionState.Closed?Then?cn.Open()
DataBaseRST?=?cmdinsert.ExecuteNonQuery()?'用來返回執(zhí)行的結果
cn.Close()
Return?True
Catch?ex?As?Exception
MessageBox.Show(Err.Description,?"Error",?MessageBoxButtons.OK,?MessageBoxIcon.Error)
Return?False
End?Try
End?Function
Public?Function?Search(ByVal?str?As?String,?ByVal?DGV?As?DataGridView)?As?Boolean?'查詢?str---查詢命令,DGV---DataGridView,用來顯示數(shù)據的控件
Dim?tb?As?New?DataTable
Try
Dim?ap?As?New?OleDb.OleDbDataAdapter(str,?cn)
ap.Fill(tb)
DGV.DataSource?=?tb
Return?True
Catch?ex?As?Exception
MessageBox.Show(Err.Description,?"Error",?MessageBoxButtons.OK,?MessageBoxIcon.Error)
Return?False
End?Try
End?Function
End?Module
'以下是調用方法
DataModify("?insert?into?aa?values?('1','2')")'-------這里是數(shù)據庫更新操作
Search("select?bb?from?aa",DataGridView1)'-----------這里是數(shù)據表查詢操作
1、首先,你得做一個oledbconnection對象,這個對象有個連接字符串的屬性,你需要設置
2、做一個oledbcommand對象,這個對象有個操作字符串(SQL語句)需要設置
3、打開oledbconnection對象
4、執(zhí)行oledbcommand對象
5、關閉oledbconnection對象
程序結束,希望對你有幫助
參考一下下面這段代碼就可以了。
Imports System.Data
'引入數(shù)據庫操作類命名空間
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
'建立數(shù)據行對象
Public rownumber As Integer
'定義一個整型變量來存放當前行數(shù)
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) '打開數(shù)據庫
ShowData() '顯示記錄
End Sub
Private Sub ShowData()
'在窗口中的textbox中顯示數(shù)據
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
'指向第一條數(shù)據
rownumber = 0
ShowData()
End Sub
Private Sub BtPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtPrev.Click
'指向上一條數(shù)據
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
'指向上一條數(shù)據
BtPrev.Enabled = True
rownumber = rownumber + 1
If rownumber mytable.Rows.Count - 1 Then
rownumber = mytable.Rows.Count - 1 '判斷是否到達最后一條數(shù)據
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
'指向最后一條數(shù)據
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( "請輸入聯(lián)系電話! ", 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( "請輸入數(shù)字學號! ", 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 ")
'對數(shù)據庫進行更新
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對象
'數(shù)據庫查詢函數(shù)
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)
'取得第一行數(shù)據
Catch
MsgBox(Err.Description)
End Try
End Function
End Class
引用 Microsoft ActiveX Data Objects 2.8 Library
或者加入microsoft ado data control
定義數(shù)據庫連接
Dim Cnn As New ADODB.Connection
定義操作記錄
Dim Res As New ADODB.Recordset
開始使用
If Res.State = 1 Then Res.Close
Res.CursorLocation = adUseClient
Res.Open "SELECT * From 發(fā)票表", Cnn, adOpenDynamic, adLockReadOnly
刪除用res.Delete
添加用res.AddNew
res.Fields("序號") = Trim(Res.Fields("序號"))
...
res.Update
更新用Res.Update "序號", 111
列:
'寫入產品信息
Sub WriteFP()
'On Error Resume Next
Dim SyBaseRes As New ADODB.Recordset
PB.value = 0
Res.Open "SELECT Count(*) From ICSaleEntry INNER JOIN t_Item ON ICSaleEntry.FItemID = t_Item.FItemID INNER JOIN t_MeasureUnit ON ICSaleEntry.FUnitID = t_MeasureUnit.FMeasureUnitID", SQLServer, adOpenDynamic, adLockReadOnly
Text2.Text = "當前共 " Val(Res.Fields(0)) "條數(shù)據"
PB.Max = Val(Res.Fields(0))
If Res.State = 1 Then Res.Close
Res.Open "SELECT ICSaleEntry.FDetailID AS 序號,ICSaleEntry.FInterID AS 物料編號, t_Item.FName AS 產品名稱,ICSaleEntry.FAuxPrice AS 單價, ICSaleEntry.FAuxQty AS 數(shù)量,ICSaleEntry.FAmount AS 原幣, ICSaleEntry.FStdAmount AS 本幣,t_MeasureUnit.FName AS 單位 FROM ICSaleEntry INNER JOIN t_Item ON ICSaleEntry.FItemID = t_Item.FItemID INNER JOIN t_MeasureUnit ON ICSaleEntry.FUnitID = t_MeasureUnit.FMeasureUnitID", SQLServer, adOpenDynamic, adLockReadOnly
Do While Not Res.EOF
If SyBaseRes.State = 1 Then SyBaseRes.Close
SyBaseRes.Open "select * from 物料表 where 序號='" Res.Fields("序號") "'", Cnn, adOpenDynamic, adLockOptimistic
If SyBaseRes.EOF Then
Text2.Text = Text2.Text + vbCrLf + "正在添加: " Trim(Res.Fields("序號"))
SyBaseRes.AddNew
SyBaseRes.Fields("序號") = Trim(Res.Fields("序號"))
SyBaseRes.Fields("產品編號") = Trim(Res.Fields("物料編號"))
SyBaseRes.Fields("產品名稱") = Trim(Res.Fields("產品名稱"))
SyBaseRes.Fields("單價") = Trim(Res.Fields("單價"))
SyBaseRes.Fields("數(shù)量") = Trim(Res.Fields("數(shù)量"))
SyBaseRes.Fields("原幣") = Trim(Res.Fields("原幣"))
SyBaseRes.Fields("本幣") = Trim(Res.Fields("本幣"))
SyBaseRes.Fields("單位") = Trim(Res.Fields("單位"))
SyBaseRes.Fields("數(shù)據庫名") = Trim(Text1.Text)
SyBaseRes.Update
Else
Text2.Text = Text2.Text + vbCrLf + "正在更新: " Trim(Res.Fields("序號"))
SyBaseRes.Update "序號", Trim(Res.Fields("序號"))
SyBaseRes.Update "產品編號", Trim(Res.Fields("物料編號"))
SyBaseRes.Update "產品名稱", Trim(Res.Fields("產品名稱"))
SyBaseRes.Update "單價", Trim(Res.Fields("單價"))
SyBaseRes.Update "數(shù)量", Trim(Res.Fields("數(shù)量"))
SyBaseRes.Update "原幣", Trim(Res.Fields("原幣"))
SyBaseRes.Update "本幣", Trim(Res.Fields("本幣"))
SyBaseRes.Update "單位", Trim(Res.Fields("單位"))
SyBaseRes.Update "數(shù)據庫名", Trim(Text1.Text)
End If
PB.value = PB.value + 1
Res.MoveNext
DoEvents
Loop
If SyBaseRes.State = 1 Then SyBaseRes.Close
Set SyBaseRes = Nothing
End Sub
網絡希望不要用ACCESS用ASA(就是sybase那個太強了)
在此本人使用ADO對象訪問ACCESS數(shù)據庫,但ADO對象在使用前你先要進行添加,啟動VB6后,單擊菜單“工程-引用”,打開引用對話框,選擇“Microsoft ActiveX Data Objects 2.0 Library”,將其勾選,(以2.0版本為例,實際可以選擇系統(tǒng)中的最高版本如本人的就是2.6版本),然后在當前目錄下建立一個名為“學生”的ACCESS數(shù)據庫,其中表名為“表”,字段共有:學號,姓名,年齡,性別四個字段,接下來就是設計界面了(自己設計)
現(xiàn)在介紹如何使用代碼訪問ACCESS數(shù)據庫:
在代碼窗口中編寫一個返回字符型的函數(shù)
Function Connection() As String
'數(shù)據庫的連接設置配置
Connection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" App.Path + "\學生.mdb"
End Function
該函數(shù)用于連接數(shù)據庫用
Private Form_Load()
Dim cnn As New ADODB.Connection
Dim Rst As New ADODB.Recordset
cnn.Open Connection
Set Rst = New ADODB.Recordset
Rst.Open "select * from 表", cnn, adOpenKeyset, adLockOptimistic
End Sub
注:
Dim cnn As New ADODB.Connection創(chuàng)建一個ADO數(shù)據庫連接對象
Dim Rst As New ADODB.Recordset為創(chuàng)建一個ADO數(shù)據庫記錄對象
select * from 表 是SQL查詢語言,這里為數(shù)據源,意思就是打開數(shù)據庫“學生”中的表“表”
下面是將數(shù)據庫表中的字段值顯示出來的一個過程
Sub View()
Dim i As Integer
For i = 0 To 2
Text1(i) = Rst.Fields(i)'text1為控件數(shù)組
Next
If (Rst.Fields(3) = True) Then
Text1(3) = "男"
Else
Text1(3) = "女"
End If
End Sub
要訪問ACCESS數(shù)據庫就這樣可以實現(xiàn),訪問SQL也差不多,稍有不同,回答完畢,如還有問題請繼續(xù)和我聯(lián)系,本人是專使用VB+SQL/Delphi+SQL開發(fā)數(shù)據庫管理系統(tǒng)的程序員。
有這個提示,說明錯誤在你的SQL語句中。你檢查一下你代碼中的SQL語句。
網站題目:vb.net修改mdb,vb修改器
網址分享:http://chinadenli.net/article10/dsiocdo.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號、企業(yè)建站、網站收錄、外貿網站建設、網站設計公司、網站設計
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)