程序设计之三:OleDB数据库访问技术(VB.NET+Access)
来源:互联网 发布:百度闪电算法 编辑:程序博客网 时间:2024/05/22 17:27
近来正在做一个图书管理系统,采用VB.NET语言编写,所有程序运行都必须安装Microsoft .NET Framework 4.0并连接到Access2003数据库中。现在已近完工,我将本软件中用到的所有连接语句归纳于此处,一来方便大家,互相学习,二来,也方便自己日后的复习。
所有的数据库连接都要使用以下语句:Imports System.Data.OleDb,该语句声明了所使用到的OleDb类。下面分类介绍了VB.NET访问ACCESS数据库的增加,修改,删除等部分过程。
1、使用ADODB来访问数据库,对数据库进行查找。下面一段代码实现的是管理员登陆功能。用到的控件有以下:ADODB.Connection,ADODB.Recordset。并且需要在引用中添加:Microsoft ActiveX Date Objects Library 6.0来支持程序的运行。
Public Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.ClickTryDim conn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim sql As StringDim connstr As Stringconnstr = "provider=microsoft.jet.oledb.4.0;data source=bookmanage.mdb"sql = "select * from admin where 管理员姓名='" & txtname.Text & "'"conn.Open(connstr)rs.Open(sql, conn, 1, 1)If rs.RecordCount = 0 ThenMsgBox("用户不存在")txtname.Text = ""txtPassword.Text = ""txtname.Select()rs.Close()conn.Close()Exit SubEnd IfIf txtPassword.Text <> rs("登陆密码").Value ThenMsgBox("用户口令错误")txtname.Text = ""txtPassword.Text = ""txtname.Select()rs.Close()conn.Close()ElseMsgBox("登陆成功")rs.Close()conn.Close()main.Show()Me.Close()End IfCatch ex As ExceptionMsgBox("登陆失败,请重试!")End TryEnd Sub
上面程序中,我通过rs("登陆密码").Value来实现对仅有一条结果的Select语句结果的某个字段的值进行输出。
2、使用OleDbConnection来访问数据库。需要用到的控件有:DataSet,OleDbConnection,OleDbDataAdapter。
首先要配置数据源,我们可以采用以下的方法:
connstr = "provider=microsoft.jet.oledb.4.0;data source=bookmanage.mdb"
2.1、查找语句。下面这段代码实现的功能查找管理员帐户登陆密码。
Private Sub btnEnter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnter.Click
Try
Dim password As String
Dim connstr As String
connstr = "provider=microsoft.jet.oledb.4.0;data source=bookmanage.mdb"
Dim myConn As OleDbConnection = New OleDbConnection()
myConn.ConnectionString = connstr
myConn.Open()
Dim strSearch As String = "select * from admin where 登陆密码='" & txtPwdOld.Text & "'"
Dim myCommand As New OleDbCommand(strSearch, myConn)
Dim dr As OleDbDataReader
dr = myCommand.ExecuteReader
If dr.Read = False Then
MsgBox("原密码错误,请重新输入!", MsgBoxStyle.Information, "系统提示")
myConn.Close()
Exit Sub
Else
password = dr("登陆密码")
End If
Catch ex As Exception
MsgBox("查找失败,请重试!")
End Try
End Sub
上述代码能实现使用Select语句,从数据库中查找出指定的结果。我们可以通过以下程序段来实现和ADODB一样的数据字段绑定。
Try
Dim dt As New DataTable()
Dim connStr As String
connstr = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=bookmanage.mdb"
Dim sqlStr As String = "select * from book where 书名 like '%" & TextBox1.Text & "%'"
Dim dataAdapter As New OleDb.OleDbDataAdapter(sqlStr, connStr)
dataAdapter.Fill(dt)
dataAdapter.Dispose()
If dt.Rows.Count = 0 Then
MessageBox.Show("找不到该书的记录!")
Else
Label1.Text = dt.Rows.Item(0).Item(2)
End If
Catch ex As Exception
MsgBox("查找失败,请重试!")
End Try
这段代码还使用到了DataTable控件,其中dt.Rows.Item(0).Item(2)的意思是,取出dt中的第0行,第2列的值。或者:也可以用以下的代码实现。
Try
Dim connstr As String
connstr = "provider=microsoft.jet.oledb.4.0;data source=bookmanage.mdb"
Dim myConn As OleDbConnection = New OleDbConnection()
myConn.ConnectionString = connstr
myConn.Open()
Dim strSearch As String = "select * from book where 书号='" & Trim$(TextBox1.Text) & "'"
Dim myCommand As New OleDbCommand(strSearch, myConn)
Dim dr As OleDbDataReader
dr = myCommand.ExecuteReader
If (dr.Read = False) Then
MsgBox("错误!", MsgBoxStyle.Information, "系统提示")
Exit Sub
Else
Label1.Text = dr("书号")
End If
Catch ex As Exception
MsgBox("查找失败,请重试!")
End Try
这里是将dr("书号")字段的值取出来。要实现这个赋值,dr("书号")的内容最多最能为1条。
2.2、更新语句。这段代码实现的功能时修改登陆密码。
Private Sub btnEnter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnter.Click
Try
If txtPwdOld.Text = password Then
Dim connstr As String
connstr = "provider=microsoft.jet.oledb.4.0;data source=bookmanage.mdb"
Dim myConn As OleDbConnection = New OleDbConnection()
myConn.ConnectionString = connstr
myConn.Open()
Dim StrUpdate As String = "Update admin SET 登陆密码='" + txtPwd.Text + "'"
Dim cmdInsert As OleDbCommand = New OleDbCommand(StrUpdate, myConn)
cmdInsert.ExecuteNonQuery()
MsgBox("密码修改成功!")
myConn.Close()
End If
Catch ex As Exception
MsgBox("查找失败,请重试!")
End Try
End Sub
2.3、删除语句。
Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
Try
Dim ConnectionString As String
ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=bookmanage.mdb"
Dim myConn As OleDbConnection = New OleDbConnection()
myConn.ConnectionString = ConnectionString
myConn.Open()
Dim strDelete As String
strDelete = "delete from borrower where 借书证号 = '" & txtNum.Text & "'"
Dim cmdInsert As OleDbCommand = New OleDbCommand(strDelete, myConn)
cmdInsert.ExecuteNonQuery()
MsgBox("注销成功!")
Catch ex As Exception
MsgBox("注销失败,请重试!")
End Try
End Sub
2.4、插入语句。
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
Try
Dim connstr As String
connstr = "provider=microsoft.jet.oledb.4.0;data source=bookmanage.mdb"
Dim myConn As OleDbConnection = New OleDbConnection()
myConn.ConnectionString = connstr
myConn.Open()
Dim strInsert As String = "insert into book (书号,书名,出版社,数量,作者,出版日期,分类 ) values('" + txtNum.Text + "','" + txtBookName.Text + "','" + txtPublisher.Text + "','" + txtQuality.Text + "','" + txtAuthor.Text + "','" + txtDate.Text + "','" + txtDept.Text + "')"
Dim cmdInsert As OleDbCommand = New OleDbCommand(strInsert, myConn)
cmdInsert.ExecuteNonQuery()
MsgBox("添加成功!")
Catch ex As Exception
MsgBox("添加失败")
End Try
End Sub
3、使用DataGridView来显示数据。
Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
Try
Dim dt As New DataTable()
Dim connStr As String
connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=bookmanage.mdb"
Dim sqlStr As String
sqlStr="select borrowbook.书号,book.书名,book.出版社,book.作者,book.分类,borrowbook.借书日期 from borrowbook, book where borrowbook.借书证号 = '" & lblNum.Text & "' and borrowbook.书号 = book.书号"
Dim dataAdapter As New OleDb.OleDbDataAdapter(sqlStr, connStr)
dataAdapter.Fill(dt)
dataAdapter.Dispose()
If dt.Rows.Count = 0 Then
MessageBox.Show("找不到借书记录!")
Else
dgvBorrowInformation.DataSource = dt
End If
Catch ex As Exception
MsgBox("填充失败")
End Try
End Sub
2011年4月10日星期日
- 程序设计之三:OleDB数据库访问技术(VB.NET+Access)
- VB.NET 使用 OleDb 操作 Access 数据库(来自 MSDN)
- [VB.NET]OLEDB.NET 如何访问Oracle8i
- OLEDB访问带密码ACCESS数据库(OLEDB连接各种数据库)
- vb.net操作数据库之ACCESS(1)
- vb.net操作数据库之ACCESS(2)
- vb.net操作数据库之ACCESS(3)
- vb.net操作数据库之ACCESS(一)
- [VB.NET]OLEDB.4.0连接ACCESS,怎么改成SQL SERVER数据库?
- .net中使用OleDb连接Access数据库
- ASP.NET oledb连接Access数据库
- VB.NET 串口访问之三
- 初级:ASP.NET使用OLEDB适配器访问ACCESS数据库出现各类连接异常
- ASP.NET使用OLEDB适配器访问ACCESS数据库出现各类连接异常
- 数据库访问方式(ODBC OLEDB ADO ADO.NET)
- .net之OLEDB连接数据库
- ODBC OLEDB ADO等数据库访问技术
- oledb 访问ACCESS
- Assistly 推出客户支持应用Assistly For Salesforce
- Android自动化测试之Monkeyrunner(2)
- oracle 和 MysqL sqlserver 的基本区别
- 浅谈集群情况下的session实现机制
- String,StringBuffer和StringBuilder的区别
- 程序设计之三:OleDB数据库访问技术(VB.NET+Access)
- poj 3090(法雷级数。。。)
- sql loader
- Android Robotium的几个小tips
- Symbian OS 文件服务器(五)
- Python字符编码检测 -- chardet
- Redis加Node.js的全文搜索引擎 Reds在Ubuntu下面 的安装
- Ascii
- rails server error