2010-04-07 2 views
0

인사말,C# Windows 응용 프로그램의 형식화 된 데이터 집합 이니셜 라이저 문제

저는 C#을 사용하여 Windows 응용 프로그램에서 작업하고 있습니다.

필자는 packetsDBDataSet이라는 유형의 데이터 세트를 가지고 있으며 insertPackets()라는 데이터를 삽입하는 메소드가있는 packetsTableAdapter라는 테이블 어댑터를 가지고 있습니다.

내가 새 데이터를 삽입하려고 할 때 이전에 asp.net 페이지에서 사용했던 코드를 사용했지만 제대로 작동했지만 오류가 발생하지 않았습니다. 여기

코드이다

public packetsDBDataSetTableAdapters.packetsTableAdapter ds = new packetsDBDataSetTableAdapters.packetsTableAdapter(); 

public packetsDBDataSet.packetsDataTable insert = ds.InsertPackets(); 

여기서 에러이다

오류 1 비 정적 필드, 메소드 또는 속성 'Packets.Form1.ds'을 참조 할 수있는 필드를 초기화 C : \ Users \ Ali \ Documents \ Visual Studio 2008 \ Projects \ Packets-3 \ Packets \ Packets \ Form1.cs 26 59 패킷

이미 내 프로젝트에 포함되어 있습니다 : Packets; Packets.packetsDBDataSetTableAdapters를 사용하는 ;

이 문제를 해결하려면 조언을 구하십시오.

업데이트 : 나는 또한 시도

:

공공 packetsDBDataSetTableAdapters.packetsTableAdapter ds는 = 새로운 packetsDBDataSetTableAdapters.packetsTableAdapter을();

ds.InsertPackets ("1", "2", "3");

나는이 오류 받고 있어요 :

오류 1 개 잘못된 토큰 '('클래스, 구조체 또는 인터페이스 멤버 선언 C : 알리 \ 문서가 프로젝트 \ 패킷-3 \ 비주얼 스튜디오 2008 \ \ 사용자 \ \ 패킷 \ 패킷 \ Form1.cs를 28 개 29 패킷

+0

공개 필드는 나쁜 습관입니다. – SLaks

답변

1

는이 라인 필드 이니셜 라이저라고 그들은 필드를 선언하고 어떤 값으로 초기화

오류가 필드 이니셜 라이저의 인스턴스 멤버를 참조 할 수 없습니다, 말했듯이. 수업 (수업이 완전히 시작되기 전에 실행되기 때문에).

ds 인스턴스 멤버를 참조하므로 insert = ds.InsertPackets();을 생성자로 이동해야합니다.

+0

도와 주셔서 감사합니다. – Eyla

관련 문제