Try
                mycon.Open()
                myreader = mycmd.ExecuteReader
                Return myreader
            Catch e As Data.OleDb.OleDbException
                Throw New Exception(e.Message)
            Finally
                mycmd.Dispose()            End Try
            mycon.Close()
和            Try
                mycon.Open()
                myreader = mycmd.ExecuteReader
                Return myreader
            Catch e As Data.OleDb.OleDbException
                Throw New Exception(e.Message)
            Finally
                mycmd.Dispose()
                mycon.Close()
            End Try
         
有什么区别,为什么在使用时前面的对 

解决方案 »

  1.   

    try //运行程序代码
    end try //结束
    finally// 关闭任何已经打开的链接。
      

  2.   

    如果采用第二种,那么Return myreader 接受他的reader就是会说连接关闭。为什么会这样
      

  3.   

    差别只是mycon.Close()是否在finally块中。finally是表示,不管try执行时是否发生错误,都要执行的程序块。按你的程序来看,应该是一样的。
      

  4.   

    Public Shared Function TheReader(ByVal mysql As String) As Data.OleDb.OleDbDataReader
                Dim connstr As String = System.Configuration.ConfigurationManager.AppSettings("ConnString")
                Dim mycon As Data.OleDb.OleDbConnection = New Data.OleDb.OleDbConnection(connstr)
                Dim mycmd As Data.OleDb.OleDbCommand = New Data.OleDb.OleDbCommand(mysql, mycon)
                Dim myreader As Data.OleDb.OleDbDataReader
                Try
                    mycon.Open()
                    myreader = mycmd.ExecuteReader
                    Return myreader
                Catch e As Data.OleDb.OleDbException
                    Throw New Exception(e.Message)
                Finally
                    mycmd.Dispose()            End Try
                mycon.Close()
    正确 Public Shared Function TheReader(ByVal mysql As String) As Data.OleDb.OleDbDataReader
                Dim connstr As String = System.Configuration.ConfigurationManager.AppSettings("ConnString")
                Dim mycon As Data.OleDb.OleDbConnection = New Data.OleDb.OleDbConnection(connstr)
                Dim mycmd As Data.OleDb.OleDbCommand = New Data.OleDb.OleDbCommand(mysql, mycon)
                Dim myreader As Data.OleDb.OleDbDataReader
                Try
                    mycon.Open()
                    myreader = mycmd.ExecuteReader
                    Return myreader
                Catch e As Data.OleDb.OleDbException
                    Throw New Exception(e.Message)
                Finally
                    mycmd.Dispose()
                    mycon.Close()
                End Try
                
    错误
    都是要调要这个函数