2011-11-29 4 views
2

나는 많은 수의 필드가있는 데이터 테이블을 가지고 있으며 tableadapter에 의해 채워진 데이터입니다. 일반적으로 삽입해야하는 레코드는 약간 다릅니다 (id 만 해당). 나는 사용자가 모든 것을 다시 입력하기를 원하지 않는다. 데이터베이스에 현재 레코드를 삽입하는 빠른 방법이있다. 모든 삽입, 업데이트 및 삭제 작업은 내 tableadapter를 기반으로합니다.Tableadapter를 사용하여 같은 레코드를 삽입하는 빠른 방법

//Get only one last record that has been added when the form load. 
bookTableAdapter.FillByLastID(bookDataSet.dtBook); 

private void btnNew_Click(object sender, EventArgs e) 
{ 
    bookBindingSource.AddNew(); 
} 

private void btnSave_Click(object sender, EventArgs e) 
{ 
    this.Validate(); 
    bookBindingSource.EndEdit(); 
    bookTableAdapter.Update(bookDataSet.dtBook); 
} 
+0

일부 코드 예제가 좋은 것 :

그러나이 기사는 나에게 대답을했다. 업데이트 작업을 수행하는 방법이 명확하지 않기 때문입니다. u는 테이블 전체를 게시합니까? –

+0

난 내 datadapater에 그냥 업데이트 방법. 한 번에 한 레코드를 게시합니다. – sovantha

답변

1

것은이 행을 복사 시도해보십시오 TableAdapter에 쿼리가 새 행이했던 것보다 더 많은 열을 반환하기 때문에

 DataRow row = table.Rows[0]; // row you want to copy 

     DataRow newRow = table.NewRow(); 
     newRow.ItemArray = row.ItemArray.ToArray(); 
     newRow["Id"] = 10; // change Id 

     table.Rows.Add(newRow); 
+0

GUid.NewGuid();는 무엇입니까? 오류 메시지가 나타납니다. 'System.Guid'유형의 객체를 'System.IConvertable'유형으로 캐스팅 할 수 없습니다. ID 열에 을 저장할 수 없습니다. 예상되는 형식은 Int32 – sovantha

+0

입니다. 위의 예에서 ID 열은 Guid 유형입니다. int가 있으므로 int로 변경하십시오. 내 업데이트를 확인하십시오. – Stecya

+0

좋습니다. 고마워. – sovantha

관련 문제