下面编写了一个用DataReader填充AxMSFlexGrid网格的过程。由于DataReader是只向后读取数据的方法,它每读取一条数据要通过Read实现,当读完时Read返回false.读数据时要考虑读出的数据是否为空值,我们可以灵活地把转换为字符串来实现. AxMSFlexGrid的列数应该首先确定。每向AxMSFlexGrid填充一条记录,AxMSFlexGrid应该增加一项,可通过AddItem实现。完整的代码如下:
'作用:用记录集的数据填充网格
'参数:MSGrid 网格对象,DataReader 数据读者
代码:list1
我们进一步编写访问其它数据库的类。我们把类命名为OleDataAccess。在类中定义一个数据连接对象变量 Private mOleCnnDB As New OleDbConnection(),然后定义连接Access数据库的函数. Access数据库是Microsoft开发的本地数据库,它通过Microsoft.Jet.OLEDB数据访问方式访问数据库,Microsoft.Jet.OLEDB又有多种版本,其中4.0是最高版本,它能访问ACCESS 2000,所以这里的数据提供者指定为Microsoft.Jet.OLEDB.4.0。指定了本地数据库和提供者后,就可打开一个数据库了,用open方法实现。完整的代码如下:
'作用: 连接Access数据库
'参数: DBName 数据库名
代码:list2
'作用: 连接Access数据库
'参数: DBName 数据库名, UserID 用户名,UserPwd 用户密码
代码:list3
Oracle数据库是目前最有影响的一种广泛使用的后台数据库。访问Oracle先指明其提供者MSDAORA。Oracle与Sql Server不同的是它不是通过数据库来管理的,所以它不需指明数据库,但它连接时必须指明用户,即使是超级用户也如此,这是它的安全性能高于Sql Server的理现之一,所以我们只须编写一个过程。其它类似。完整的代码如下:
'作用: 连接Oracle数据库
'参数:ServerName 服务器名,UserID 用户名,UserPwd 用户密码
代码:list4
有了上面的连接数据库的方法,我们就可直接读写数据了。为了提高读写数据的性能,加快读写速度,Microsoft把读写数据分为二种。一种是只读数据,通过OleDbDataReader实现。OleDbDataReader是通过执行查询命令OleDbCommand来完成的。而OleDbCommand有二个重要的属性。一个是连接一个连接对象的Connection属性和一条查询命令的CommandText属性。OleDbCommand的执行命令可以返回一个OleDbDataReader。下面我们把要访问的表作为输入参数传入,最后返回一个OleDbDataReader。完整的代码如下:
'作用:连接表
'参数:TableName表名
'返回:查询访问
代码:list5
下面是扩充上面函数的功能,可以根据条件访问单个表。
'作用:连接表
'参数:TableName表名,strWhere条件
'返回:查询访问
Public Overloads Function GetDataReader(ByVal TableName As String, ByVal strWhere As String) As OleDbDataReader
Dim strSql As String
Dim myOleCommand As New OleDbCommand()
Dim myReader As OleDbDataReader
strSql = "SELECT * FROM " & TableName & " where " & strWhere
myOleCommand.Connection = mOleCnnDB
myOleCommand.CommandText = strSql
myReader = myOleCommand.ExecuteReader()
Return myReader
End Function