Stack trace는 ExecuteReader가 ExecuteScalar의 기본 메소드임을 보여줍니다. 관련 commandbehaviour에 대해 파고 들었을 때, 나는 commandbehaviour.default가 독자에 의해 사용되었다는 것을 알리는 아래 게시물을 발견했습니다. 제공가 ExecuteReader (commandbehaviour.Closeconnection) 사용 -ExecuteScalar()를 사용하면 "기본"CommandBehaviour가있는 ExecuteReader()가 호출됩니까?
Does ExecuteScalar() have any advantages over ExecuteReader()?
나는 datareader.dispose가()) 연결이 항상 닫을 수 있습니다 명시 적으로 (datareader.close을 사용하여 배치 된 것을 알고 있어요. 반면 ExecuteReader (CommandBehaviour.Default)는 datareader 개체가 닫히거나 처리되는 경우에도 기본 연결을 열어 둡니다. 그래서 내 질문에, startscalar 기본 동작을 사용하는 경우 어떻게 스칼라 값을 검색 한 후에 기본 연결이 닫혀 있는지 확인하려면 무엇입니까?
감사합니다. Loren! 진술을 사용하는 것이 아마도 가장 빠르고 쉬운 방법 일 것입니다. – MZZ
당신이 좋아한다면 다행입니다, using 문은 C#의 절대적인 보석이며, 더 자주 사용되어야합니다. – LorenVS