Visual Studio 2017中使用ADO访问数据库的实例

Public Sub ConnAccess(ByVal DBName As String) Dim strDB As String

mCnnDB.CursorLocation = adUseClient mCnnDB.Provider = \mCnnDB.Open(DBName, \End Sub

在ODBC中设置DNS,在下面的ConnectionString中指定用户名和密码,最后用open方法打开。由于ODBC分有用户名和无用户名两者,我们必须分别实现,借助类的函数名重载功能,我们编写两个同名的过程,完整的代码如下:

''作用: 连接ODBC数据库(不需指定用户和密码 ) ''参数:dsnName为ODBC名

Public Sub ConnODBC(ByVal dsnName As String) mCnnDB.Provider = \

mCnnDB.ConnectionString = \mCnnDB.Open() End Sub

''作用: 连接ODBC数据库(需指定用户和密码 )

''参数:dsnName ODBC名,UserID 用户名,UserPwd 用户密码

Public Sub ConnODBC(ByVal dsnName As String, ByVal UserID As String, ByVal UserPwd As String) mCnnDB.Provider = \mCnnDB.ConnectionString = \Source=''\& dsnName & \ID=''\\mCnnDB.Open() End Sub

SQL Server数据库是Microsoft开发的一种广泛使用的后台数据库。访问SQL Server可以通过指明ODBC驱动程序为SQL Server来实现,即在连接字符串中要有driver={SQL Server},由于它是后台数据库,所以必须指明SQL Server所在的计算机名,通常把它称为服务器,下面的ServerName就说明这点,然后指明是连接哪个数据库。其它的类似上面的ODBC。SQL Server的用户分为WIN NT 和授权用户,WIN NT用户是不需要指定用户名和密码的超级用户,否则要指明用户名和密码,这决定于SQL Server数据库管理员,在此不作详细说明,完整的代码如下:

''作用: 连接SQL Server数据库

''参数:ServerName 服务器名,DBName 数据库名

Public Sub ConnSQLServer(ByVal ServerName As String, ByVal DBName As String) With mCnnDB

.ConnectionString = \\\.Open() End With End Sub

''作用: 连接SQL Server数据库

''参数:ServerName 服务器名,DBName 数据库名,UserID 用户名,UserPwd 用户密码

Public Sub ConnSQLServer(ByVal ServerName As String, ByVal DBName As String,ByVal UserID As String, ByVal UserPwd As String) With mCnnDB

.ConnectionString = \&\\\.Open() End With

End Sub

Oracle数据库是目前最有影响的一种广泛使用的后台数据库。访问Oracle先指明其提供者MSDAORA。Oracle与Sql Server不同的是它不是通过数据库来管理的,所以它不需指明数据库,但它连接时必须指明用户,即使是超级用户也如此,这是它的安全性能高于Sql Server的理现之一,所以我们只须编写一个过程。其它类似。完整的代码如下:

''作用: 连接Oracle数据库

''参数:ServerName 服务器名,DBName 数据库名,UserID 用户名,UserPwd 用户密码

Public Sub ConnOracle(ByVal ServerName As String, ByVal UserID As String, ByVal UserPwd As String) With mCnnDB

.Provider = \

.ConnectionString = \\\.Open()

End With End Sub

连结数据库后,就可以利用ADO扩充读写数据的函数。

ADO在访问表时要指明其光标类型和锁类型,且指定其读写权限,这里我们编写的是有读写权限的通用的函数,所以我们指定光标CursorType为adOpenKeyset,锁为adLockOptimistic,2017需指明其来源,这是为什么开始要有 \ADODB.CursorLocationEnum\语句的原因。有了这些,就可通过执行查询语句来打开一个表。打开表后,我们判断表是否为空表,不是则移动记录至尾后再现移至记录头(这是为了可以访问其中每条记录,特别是用RecordCount求记录数时不至于返回-1的关键),最后返回一个记录集,完整的代码如下:

''作用:连接表

''参数:TableName表名 ''返回:记录集

Public Function OpenTable(ByVal TableName) As ADODB.Recordset Dim strSql As String Dim rec As ADODB.Recordset rec = New ADODB.Recordset()

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4