.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
不用ado控件,让datagrid显示数据

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

用vb写程序的时候,经常需要让DataGrid控件显示数据库的内容,一般都是通过把DataGrid和ADO控件绑定实现的,这样比较麻烦。后来我就想写代码实现这个功能,代码如下:
Public Function GetMDBRecordset(SQL As String, DatabasePath As String, Optional DatabasePassword As String) As Recordset
    On Error GoTo ErrorStats
    Dim wadoConnection As New Connection
    Dim wadoRecordset As New Recordset
    Dim PasswordString As String
    If Len(DatabasePassword) <> 0 Then
        PasswordString = ";Persist Security Info=False;Jet OLEDB:Database Password=" & DatabasePassword
    End If
    wadoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DatabasePath & PasswordString
   
    With wadoRecordset
        .ActiveConnection = wadoConnection
        .Source = SQL
        .CursorType = adOpenKeyset
        .LockType = adLockOptimistic
        .Open
    End With
   
    Set GetMDBRecordset = wadoRecordset
    Exit Function
ErrorStats:
    MsgBox "错误号是:" & Err.Number & vbCrLf & "错误详细信息:" & Err.Description
End Function

在一个Button的Click事件中添加如下代码:
Set datagrid1.DataSource = GetMDBRecordset("select * from table1", "f:\db1.mdb")

这样确实能打开数据库,但是DataGrid里死活不出现内容,经过测试,证明数据库确实被打开了,只是Datagrid控件里没有显示出来。

后来无意中发现同事所写的一个打开数据库的函数,里面给Recordset对象设定了一个CursorLocation=adUseClient,这样,就能在datagrid里显示出来内容了,真是奇怪啊。

代码片断如下:
With wadoRecordset
        .ActiveConnection = wadoConnection
        .Source = SQL
        .CursorType = adOpenKeyset
        .LockType = adLockOptimistic
        .CursorLocation = adUseClient
        .Open
End With

呵呵,这样就好了。




相关文章

相关软件