2013-05-10 5 views
0

NorthwindDataSet에 연결하려고합니다. 사용자가 단추를 클릭하면 데이터를 다시 데이터베이스에 저장하려고합니다. 아래의 코드를 실행할 때 오류는 없지만 데이터는 저장되지 않습니다. DataSet에 올바르게 연결되어 있고 이것이 왜 다시 저장되지 않는지 확실하지 않습니다.변경 사항을 데이터베이스에 다시 저장하지 않습니다.

NorthwindDataSetTableAdapters.CustomersTableAdapter north = new NorthwindDataSetTableAdapters.CustomersTableAdapter(); 
NorthwindDataSet.CustomersDataTable northtable = north.GetData(); 

NorthwindDataSet northwindDataSet1 = new NorthwindDataSet(); 
NorthwindDataSet.CustomersRow newCustomersRow = 
northwindDataSet1.Customers.NewCustomersRow(); 

newCustomersRow.CustomerID = "5"; 
newCustomersRow.CompanyName = "Alfreds Futterkiste"; 

northwindDataSet1.Customers.Rows.Add(newCustomersRow); 

northwindDataSet1.Customers.AcceptChanges(); 
+0

이 자료를 사용한 지 오래되었지만 DataSet과 DataAdapter 간의 연결은 무엇입니까? CustomersTableAdapter 인스턴스가 Update() 또는 사용자 지정 메서드를 통해 업데이트를 수행 할 것으로 기대합니다. –

+0

TableAdapter 북쪽에서 Update 메서드를 호출 할 필요가 없습니까? –

답변

2

AcceptChanges 메서드뿐만 아니라 테이블 어댑터에서 Update 메서드를 사용하여 변경 내용을 커밋해야합니다.

귀하의 경우는 다음과 같이 표시됩니다

north.update(northwindDataSet1.Customers); 
northwindDataSet1.Customers.AcceptChanges(); 

하는 변경이 데이터베이스에 데이터를 커밋하지 않습니다 수락합니다. 업데이트 않습니다.

+0

기본 키를 설정하려고 시도하는 것처럼 보입니다. 따라서 기본 프레임 워크에서는 PK가 자동 생성되어야하므로 기본 키 프레임을 사용하지 못하도록합니다. 난 당신이 INSERT 쿼리 및 매개 변수를 변경해야 할 것이라고 생각합니다. 물론 DB에 정의 된 ID 필드가 없다는 것을 고려하면 DB 수준에서 PK 컬럼을 업데이트하지 못하게됩니다. –

관련 문제