我应该怎么做?我有错误无效的操作。连接已关闭。 [英] How should I do? I have error Invalid operation. The connection is closed.

查看:48
本文介绍了我应该怎么做?我有错误无效的操作。连接已关闭。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有错误无效的操作。连接已关闭。当我使用功能ExecuteData。



请指教。我该怎么办?



I have error Invalid operation. The connection is closed. when i use function ExecuteData.

Please advise. How should I do?

Private Shared Conn As New OracleConnection
    Private Shared Trans As OracleTransaction
 
    Private Shared Sub OpenConnect(ByVal strConnectionString As String)
        With Conn
            If .State = ConnectionState.Open Then .Close()
            .ConnectionString = strConnectionString
            .Open()
        End With
    End Sub
 
    Private Shared Sub CloseConnect()
        Conn.Close()
        Conn.Dispose()
    End Sub
 
    Public Overloads Shared Function ExecuteData(ByVal strCommandText As String, _
                                             ByVal ParameterCollection As OracleParameterCollection, _
                                             Optional ByVal strConnectionString As String = "") As ExecuteReturn
        If Conn.State = ConnectionState.Closed Then OpenConnect(strConnectionString)
        Dim oraCommand As New OracleCommand
        oraCommand.CommandText = strCommandText
        oraCommand.Connection = Conn
        If Not Trans Is Nothing Then
            oraCommand.Transaction = Trans
        End If
        Dim oraParam As OracleParameterCollection = ParameterCollection
        For Each param As OracleParameter In ParameterCollection
            oraCommand.Parameters.Add(param.ParameterName, param.OracleType).Value = param.Value
        Next
        Dim effect As New ExecuteReturn
        Try
            effect.intRowEffected = oraCommand.ExecuteNonQuery()
            If oraCommand.Transaction Is Nothing Then
                CloseConnect()
            End If
            Return effect
        Catch ex As Exception
            effect.intRowEffected = -1
            effect.strErrorMessage = ex.Message
            CloseConnect()
            Return effect
        End Try
    End Function

推荐答案

州可能不是封闭或开放(这是错误的二分法)。使用如果Conn.State!= ConnectionState.Open 而不是
The state may not be Closed or Open (it is a false dichotomy). Use If Conn.State != ConnectionState.Open instead


这篇关于我应该怎么做?我有错误无效的操作。连接已关闭。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆