2
오라클과 협력해야하는 것은 처음입니다. 몇 년 동안 특정 모델로 작업하는 동안 우리는 모두 외계인과 작업하는 것을 싫어하므로, 이것이 우리의 일이지만 우리는 그것을해야합니다.Oracle 데이터 액세스로 ExecuteReader()를 시도 할 때 InvalidOperationException ODP.NET 11.2
이제 Oracle 11g를 설치하고 Oracle.DataAccess.dll을 복사하고 참조하여 연결을 열고 서버에서 생성 된보기에서 일부 개체를 검색하려고 시도하는 방법을 만들었습니다.
방법 :
public BindingList<HeaderReceiver> GetHeaderReceivers()
{
try
{
using (OracleConnection db = new OracleConnection(BaseDataAccess.ConnString))
{
string cmdText = "select * from p_customer t";
BindingList<HeaderReceiver> headerReceivers = new BindingList<HeaderReceiver>();
OracleCommand cmd = new OracleCommand(cmdText) { CommandType = CommandType.Text };
db.Open();
OracleDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); <--- Error Occurs HERE!!!
while (reader.Read())
headerReceivers.Add(HeaderReceiver.GetInstance(reader));
CustBranchRepository rep = new CustBranchRepository();
headerReceivers.ForEach(p => p.DetailsBranch = rep.GetDetailReceivers(p.Id));
reader.Close();
db.Close();
return headerReceivers;
}
}
catch (Exception ex)
{
ExporterLogger.Log(ex);
return null;
}
}
이제가 ExecuteReader()가 나는이 경우 InvalidOperationException을 얻을 커밋 할 때.
Operation is not valid due to the current state of the object.
스택 트레이스 :
at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior)
at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(CommandBehavior behavior)
at Exporter.Boss.DataAccess.CustomerRepository.GetHeaderReceivers() in ...Exporter\Exporter.Boss.DataAccess\CustomerRepository.cs:line 25
어떤 생각과 도움이 ...
감사합니다!
이 게시물을 발견. 내 Command 개체에서 ExecuteDataReader()를 호출 할 때이 오류가 발생했습니다. Command 객체에서 연결을 설정했음을 알았지 만 ExecuteDataReader()를 호출 한 후에이 작업을 수행했습니다. 내가 두 줄을 바꿨을 때 완벽하게 잘 작동했다. 따라서 이것은 올바른 대답으로 표시되어야합니다. – Jeroen