Private Sub Form_Load()
Dim Conn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim SQL As StringConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data.mdb;Persist Security Info=False"
Conn.CursorLocation = adUseClient
Rs.Open "select * from lnc", Conn, adOpenDynamic, adLockBatchOptimistic
Set DataGrid1.DataSource = Rs
DataGrid1.Refresh
(   )
End Sub
如果()中写conn.close那么datagrid中的内容会没有,如果写set conn=nothing的话就有!
如果()中写rs.close那么datagrid中的内容会没有,如果写set rs=nothing的话就有!请问两者有什么区别,具体在什么情况下用nothing 什么情况下用close,最好可以说的详细点~?往数据库中写入的数据后一定要与数据库断开连接,不然有可能会丢失数据,请问是用close,还是nothing呢?
我是个初学者,谢谢了!

解决方案 »

  1.   

    close是关闭连接,set ...=nothing是释放对象所占用的内存
      

  2.   

    对于DataGrid控件,关闭数据库连接或关闭记录集,都不能显示数据
      

  3.   

    往数据库中写入的数据后一定要与数据库断开连接,不然有可能会丢失数据,请问是用close,还是nothing呢?
    --------------------------------------------
    断开数据库连接是用close如果对象不再使用,那么就把它释放掉(set ...=nothing)
      

  4.   

    关键是要在适当的时候关闭连接,释放内存
    这个要根据你程序的需要来确定,如果设置为全局的就在form_unload事件中关闭和释放就可以了
      

  5.   

    如果释放掉后,数据会不会丢失呢?还是close,nothing都不会丢失。我还想请教个问题,在程序中如果对数据库进行操作时是不是要养成,用时连接,不用时关闭的习惯。这样做会不会对程序本身有什么影响。换句话说是不是要频繁的使用连接和关闭(我是指在要对数据库进行操作时!)
      

  6.   

    也就是说,只要有数据的连接,操作就可以使用:例如连接下前先判断数据库是否打开,如果打开则关闭,在重新连接,是吗?代码如下请指教!
    if conn.state=1 then 
       conn.close
       set conn=nothnig
    end ifif rs.state=1 then
       rs.close
       set rs=nothing
    end if
      

  7.   

    连接下前先判断数据库是否打开,如果打开则关闭,在重新连接,是吗?代码如下请指教!
    if conn.state=1 then 
       conn.close
       set conn=nothnig
    end ifif rs.state=1 then
       rs.close
       set rs=nothing
    end if
    ===============
    conn是不用关闭的,因为还会用到它的.
    rs是一定要关闭的,否则无法再次打开,open
    ///////////////////////////////////////////////////////////
    一次较大的操作之后,如读取一个表中的所有记录,向数据库中写入数据;
    都应该进行关闭连接,释放内存.
    这样保证数据能够及时更新,操作的规范化.
    ================
    您的说法我不明白,关闭连接与数据能够及时更新有什么关系呢?请指教.
      

  8.   

    谢谢楼上的几位XD,听各位的意思是不是
    一般conn是不用断开的,因为它和数据丢失没什么关系,
    RS则是用于数据的读,写操作所以它和数据丢失有关,所以才要用完就关闭~
      

  9.   

    如何操作数据库,而不让数据丢失呢~~~谢谢了~
    当作完操作后应该怎么处理conn,和rs呢?
      

  10.   

    rs是必须随时关闭的.
    可是也不好说,比如一个记录集rs显示在窗体的表格中,始终有数据,我想在整个窗体的存活期也不用关闭.随时更新到最新数据就行.
    当然,如果是datagrid,是一定不能关的.如果是msflexgrid这类表格控件,因为内容一个格子一个格子填上去的,所以关了记录集也没关系的.不过如果要求随时将表格内容导成excel,则建议还是不关记录集为好,因为记录集导成excel比较方便,如果将msflexgrid导成excel,很慢的.效率太低.
    不知说的对不对,请高手批示.