내 dataadapter를 사용하여 null 인 경우 commandbuilder를 만드는 데 사용하려는 OleDbCommand 변수가 있습니다. 변수가 널이 아닌 경우,이 변수에 명령 빌더가 이미 작성되었습니다. 변수를 로컬로 만들고 null을 테스트하면 "할당되지 않은 로컬 변수 사용 ..."변수가 public/global로 설정되면 모든 것이 작동합니다. 관련 코드는 다음과 같습니다null에 대한 oledbcommandbuilder 변수 테스트
//Created locally in a button procedure:
OleDbCommandBuilder cBuilder;
if (cBuilder == null)
{
cBuilder = new OleDbCommandBuilder(dAdapter);
}
내가 로컬 선언을 주석 및 다른 공공 변수까지 공개로 정의한다면, 그것은 어떤 흥미를 끄는없이 잘 작동합니다. 내가하는 일에 비해 지역이나 공공의 범위가 다른 이유는 무엇입니까? 필자는 commandbuilder가 이미 만들어 졌는지 확인하기 위해 테스트를 수행하여 여러 명령을 반복해서 만들지 않습니다. 내 dataadapter 변수를 사용하여 동일한 작업을 수행하고 있지만이 경우 어쨌든 공용이어야합니다. 그래서 뭔가를 만들려고 시도하기 전에 이미 만들어 졌는지 확인하기 위해 일반적으로 이것을 공격하는 더 좋은 방법이 있습니까?
어떤 것도 곤란한 JL .... 나는 처분의 개념에 얽매여 있고이 코드가 호출 될 때마다 중복 객체 (이 경우에는 OleDbCommandBuilder)를 작성하게 될까봐 두려웠다. 그래서 지역 변수가 매번 값이없는 것으로 시작한다면, 나는 그들이 표현한 객체가 자동적으로 처리된다고 가정하여 수정해야만합니까 ??? 그렇다면 사물을 단순화하는 것처럼 이것이 좋다. – valhalla
반드시 자동 처리되지는 않습니다. [사용] (http://msdn.microsoft.com/en-us/library/yh598w02.aspx) 블록을 사용하여 사용이 끝날 때마다 처리되도록해야합니다. – JLRishe