프로젝트에 입력 된 데이터 세트가 있습니다. 모든 행 대신 단 하나의 행으로 데이터 테이블을 채우고 싶습니다. 선택한 행은 기본 키 열을 기반으로해야합니다. 디자이너 코드를 수정하여이 기능을 구현할 수 있음을 알고 있습니다.하지만 디자이너에서 코드를 변경하면 나중에 디자이너를 통해 데이터베이스를 업데이트 할 때이 코드가 삭제 될 위험이 있습니다.입력 된 데이터 세트로 작업 할 때 하나의 행 선택
그래서 SelectCommand
을 디자이너가 아닌 MyTypedTableAdapter.Fill
메서드를 실행하기 전에 변경하고 싶습니다. 이상한 점은 디자이너가 SelectCommand
을 만들지 않는다는 것입니다. 다른 모든 명령을 작성하지만이 명령은 작성하지 않습니다. 그것은 완벽는 거리가 멀다
this.operatorzyTableAdapter.Adapter.SelectCommand.CommandText += " WHERE MyColumn = 1";
하지만이어야 나는 디자이너의 작품을 수정할 필요가 없습니다 것입니다 : 그것은 SelectCommand
를 작성한다면 나는이 방법으로 그것을 변경할 수 있습니다. 불행히도 내가 말했듯이 SelectCommand
은 생성되지 않았다. 대신 디자이너는 다음과 같은 것을 만듭니다.
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
private void InitCommandCollection() {
this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1];
this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand();
this._commandCollection[0].Connection = this.Connection;
this._commandCollection[0].CommandText = "SELECT Ope_OpeID, Ope_Kod, Ope_Haslo, Ope_Imie, Ope_Nazwisko FROM dbo.Operatorzy";
this._commandCollection[0].CommandType = global::System.Data.CommandType.Text;
}
제 생각에는 말이되지 않습니다. UpdateCommand
, InsertCommand
및 DeleteCommand
을 생성하지만 SelectCommand
을 생성하지 않는 이유는 무엇입니까? 나는 이것으로 참을 수 있었다. 그러나 this._commandCollection
는 개인이다. 그래서 나는 클래스 코드의 바깥쪽에 그것을 접근 할 수 없다.
디자이너의 코드를 변경하지 않고이 컬렉션에 들어가는 법을 모르겠습니다. 내가 가지고있는 아이디어는 부분 클래스 정의를 통해 컬렉션을 노출하는 것입니다. 그러나 많은 유형의 데이터 세트를 소개하고자하며 각 클래스에 대한 부분 클래스 정의를 만들고 싶지 않습니다.
.NET 3.5를 사용하고 있습니다.
나는 개인 속성에 액세스하는 방법에 대한 this 기사를 발견했습니다 그러나 당신의 시간을 .NET 4.0
감사에 관한 것이다.
감사합니다. Henk. 그건 가능 하겠지만, 모든 데이터 세트에 대해 그렇게해야 할 것입니다. 한 가지 더 말씀해 주시겠습니까? 몇 시간이 지나면 데이터 세트를 자동으로 업데이트하는 방법이 있습니까 (테이블 구조가 변경됨). 그렇다면 어떻게해야합니까? – Wodzu