잘못된 작업입니다. 연결이 닫혔습니다. 오류가 발생하였나요?
해당 오류는 IDbConnection 객체의 ConnectionState가 Closed 되어 발생합니다.
오류 발생 예시
- 데이터베이스 커넥션 설정 시 Open을 누락한 경우
- 데이터베이스 커넥션 타임아웃으로 연결이 닫힌 경우
System.InvalidOperationException: 잘못된 작업입니다. 연결이 닫혔습니다.
위치: System.Data.ProviderBase.DbConnectionClosed.BeginTransaction(IsolationLevel il)
위치: System.Data.OracleClient.OracleConnection.BeginDbTransaction(IsolationLevel isolationLevel)
위치: System.Data.Common.DbConnection.System.Data.IDbConnection.BeginTransaction()
커넥션 객체가 생성이 된다고 하여 스테이트가 자동으로 열리지는 않습니다. 명시적으로 메서드를 호출하셔야 합니다. 다음은 잘못된 작업입니다. 연결이 닫혔습니다. 오류 예제 자료입니다.
using (IDbConnection con = new OracleConnection("User Id=userName;Password=password;Data Source=dataSourceName"))
{
//System.InvalidOperationException: 잘못된 작업입니다. 연결이 닫혔습니다.
//con.Open();
using (IDbCommand cmd = con.CreateCommand())
{
using (IDbTransaction tx = con.BeginTransaction())
{
cmd.Transaction = (OracleTransaction)tx;
cmd.CommandText = "INSERT INTO table_name (column_name) VALUES (:param)";
cmd.Parameters.Clear();
((OracleParameterCollection)cmd.Parameters).AddWithValue("param", "value");
i = cmd.ExecuteNonQuery();
cmd.Transaction.Commit();
}
}
}