2011-06-10 5 views
0

여기 내 데이터 세트에서 내 데이터 테이블에 행을 추가하는 간단한 코드를했습니다 :Datatable에 Row가 추가되지 않았습니까?

DigiLocalDataSet dataset = new DigiLocalDataSet(); 

DataRow newClientsRow = dataset.Tables["clients"].NewRow(); 

newClientsRow ["clientnr"] = "123"; 
newClientsRow ["name"] = "Pascal"; 
newClientsRow ["city"] = "London"; 

dataset.Tables["clients"].Rows.Add(newClientRow); 

clientsTableAdapter.Fill(dataset.clients); 

this.DataContext = dataset.clients.DefaultView; 

하지만 내 데이터 그리드에 삽입 된 행이 표시되지 않는이, 내가 볼 단지 기존 행 '고객'테이블.

무엇이 잘못 되었나요?

답변

1

TableAdapter.Fill을 호출하면 데이터 소스에서 검색 한 데이터로 '클라이언트'DataTable이 채워 지므로 수동으로 DataTable에 추가 한 레코드가 손실됩니다.

+0

ClearBeforeFill이 true로 설정된 경우에만 해당됩니다. – InBetween

1

clientsAdapter.ClearBeforeFilltrue으로 설정되어 있는지 확인하십시오. 새 행을 추가하기 전에 false으로 설정하거나 Clients 테이블에서 Fill()으로 전화하십시오.

0

명령을 모르지만이 행을 게시해야합니다.

0

충전하기 전에 데이터 세트의 변경 사항을 수락 했습니까? fill는 상점에서 데이터를 가져옵니다.

+0

행을 저장소에 직접 추가하려면 어떻게해야합니까? –

+0

DigiLocalDataSet을 사용하지는 않았지만 기능이 향상된 표준 DataSet과 매우 유사하다고 가정합니다. 이를 염두에두고 변경을 완료 한 후에 dataset.AcceptChanges()를 호출 한 다음 tableadapter.Fill()을 호출하여 새 정보로 데이터 세트를 새로 고칩니다. – Bueller

1

시도해 보셨습니까?

newClientsRow.BeginEdit(); 
newClientsRow ["clientnr"] = "123"; 
newClientsRow ["name"] = "Pascal"; 
newClientsRow ["city"] = "London"; 
newClientsRow.EndEdit(); 
관련 문제