dim cn as new adodb.connection dim rs as new adodb.recordset dim cnstring as string cnstring="DRIVER={SQL Server};server=服务器名字;database=数据库名字;uid=用户名;pwd=密码" cn.open cnstring rs.open "select * from XX表", cnn, 3, 4 Set DataGrid1.DataSource = rs rs.close set cn=nothing
if cnn.state then cnn.close end if set cnn=nothing
关闭连接cnn.close 释放对象set cnn=nothing
set cn=adodb.connection cn.open ....cn.close
Private Sub Form_Unload(Cancel As Integer)
rst.Close Set rst = Nothing cnn.Close Set cnn = Nothing cmd.Close set cmd = Nothing
因为你已经用到ADODB.Connection, 所以你应该 adodc1.recordsource="" dbgrid1.refresh set cnn=nothing
用VB实现关闭所有数据库对象如果你在程序中使用了任何数据库对象(DAO, RDO, 或者 ADO), 在退出程序之前,你必须确认已经关闭掉了所有已经打开的记录、数据库和数据工作台(recordsets, databases, and workspaces)。虽然退出程序时这些对象的指针都被自动施放了,但是如果你自己又不能确认是否真正地释放了打开的数据库对象,那么就有可能数据库连接没有马上被释放掉,从而被这些对象所占用的内存就再也不能被操作系统再次分配。 ---- 下面有一段放在Form_Unload 事件(或者其他退出模块中)中的一小段代码例子,它演示了关闭所有打开的DAO 工作台、数据库和记录并释放了被这些对象占用的内存。当你退出FORM时,不论在有一个、100个甚至没有数据库连接时都可以使用下面代码。 Private Sub Form_Unload(Cancel As Integer)' 关闭数据库对象并且释放内存On Error Resume NextDim ws As Workspace Dim db As Database Dim rs As RecordsetFor Each ws In Workspaces For Each db In ws.Databases For Each rs In db.Recordsets rs.Close Set rs = Nothing Next db.Close Set db = Nothing Next ws.Close Set ws = Nothing Next End Sub
dim rs as new adodb.recordset
dim cnstring as string
cnstring="DRIVER={SQL Server};server=服务器名字;database=数据库名字;uid=用户名;pwd=密码"
cn.open cnstring
rs.open "select * from XX表", cnn, 3, 4
Set DataGrid1.DataSource = rs
rs.close
set cn=nothing
cnn.close
end if
set cnn=nothing
释放对象set cnn=nothing
cn.open
....cn.close
rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing
cmd.Close
set cmd = Nothing
End Sub
adodc1.recordset.close就可以了.假设有datagrid控件连接到它上面,只要:datagrid1.refresh
Adodc1.ConnectionString = ""
Adodc1.Recordset.Close
三句任何一句都可以
Adodc1.Enabled = False
所以你应该
adodc1.recordsource=""
dbgrid1.refresh
set cnn=nothing
---- 下面有一段放在Form_Unload 事件(或者其他退出模块中)中的一小段代码例子,它演示了关闭所有打开的DAO 工作台、数据库和记录并释放了被这些对象占用的内存。当你退出FORM时,不论在有一个、100个甚至没有数据库连接时都可以使用下面代码。 Private Sub Form_Unload(Cancel As Integer)' 关闭数据库对象并且释放内存On Error Resume NextDim ws As Workspace
Dim db As Database
Dim rs As RecordsetFor Each ws In Workspaces
For Each db In ws.Databases
For Each rs In db.Recordsets
rs.Close
Set rs = Nothing
Next
db.Close
Set db = Nothing
Next
ws.Close
Set ws = Nothing
Next
End Sub