반응형
개체의 현재 상태로 인해 작업이 올바르지 않습니다.C#로
테이블에서 이 레코드의 개수를 확인하기 위해 이 메서드를 만들었지만 count(*)의 값이 0일 때 이 오류 메시지가 나타납니다. 이 라이브러리를 사용하여 오라클 db를 연결합니다.
Oracle을 사용합니다.데이터 액세스.고객;
private int checkPort(int portID)
{
int intCount = 0;
try
{
OracleCommand oraCommand = new OracleCommand();
oraCommand.Connection = new DBManager().getConnection();
oraCommand.CommandText = "select count(*) as num from wireless_port_oid where port_id=:port_id";
oraCommand.Parameters.Add(":port_id", portID);
OracleDataReader Reader= oraCommand.ExecuteReader();
return intCount;
while (**Reader.Read()**)//it gives exception here
//The err Operation is not valid due to the current state of the object.
{
intCount =Convert.ToInt32(Reader[0]);
Reader.Close();
oraCommand.Connection.Close();
oraCommand = null;
if (intCount > 0)
{
return 1;
}
}
Reader.Close();
Reader.Dispose();
oraCommand.Connection.Close();
oraCommand.Connection.Dispose();
oraCommand.Dispose();
return 0;
}
catch (OracleException exception)
{
Console.WriteLine(exception.Message);
return 0;
}
}
카운트 = 0에서 판독기를 닫은 다음 while 루프에서 판독기를 다시 읽으려고 합니다.
while (Reader.Read())//it gives exception here
//The err Operation is not valid due to the current state of the object.
{
intCount =Convert.ToInt32(Reader[0]);
Reader.Close();
oraCommand.Connection.Close();
oraCommand = null;
if (intCount > 0)
{
return 1;
}
// if intCOunt == 0 then what? loop again
}
그러나 코드가 올바르지 않습니다. 방금 확인해보니 inCount가 반환되었습니다. 말씀하신 줄 직전에 오류가 발생했습니다.그것은 단지 오타의 예시일 뿐이라고 생각합니다.
당신의 코드를 리팩터해서 C#의 문장을 활용할 수 있도록 하겠습니다.
private int checkPort(int portID) {
string sql = "select count(*) as num from wireless_port_oid where port_id=:port_id";
int intCount = 0;
try {
using(OracleCommand oraCommand = new OracleCommand()) {
using(oraCommand.Connection = new DBManager().getConnection()) {
oraCommand.CommandText = sql;
oraCommand.Parameters.Add(":port_id", portID);
intCount = oraCommand.ExecuteScalar();
}
}
}
catch (OracleException exception) {
Console.WriteLine(exception.Message);
// may be you shouldn't return 0 here possibly throw;
}
return intCount;
}
언급URL : https://stackoverflow.com/questions/11490855/operation-is-not-valid-due-to-the-current-state-of-the-object-in-c-sharp
반응형
'source' 카테고리의 다른 글
텍스트 보기에 큰따옴표(") 기호를 표시하는 방법은 무엇입니까? (0) | 2023.09.24 |
---|---|
부트스트랩 3에서도 스케일업이 가능한 반응형 이미지를 만드는 방법 (0) | 2023.09.24 |
딱 한 번만 보는 시계 (0) | 2023.09.19 |
MySQL Workbench: 선택한 개체 없음 (0) | 2023.09.19 |
mysql에서 보기에 대한 주석 만들기 (0) | 2023.09.19 |