2011-06-10 2 views
2

나는 미친 듯이 드라이브 문제가 있습니다 ... 내 PC와 인터넷 (MySQL)의 데이터베이스에 동일한 구조의 로컬 데이터베이스 (.sdf)가 있습니다. 먼저 dataadapter를 통해 데이터 세트의 인터넷에서 데이터를로드하고 두 번째로 데이터 세트의 일부 로컬 데이터를로드합니다.tableadapter.update가 작동하지 않습니까?

이제 로컬 데이터베이스에서도 인터넷의 데이터를 저장하려고합니다. Update 문을 사용하여 시도했습니다. 이것은 작동해야하지만, 나는 프로그램 (디버그)을 실행할 때마다 로컬 데이터베이스 (데이터베이스 익스플로러를 통해 마우스 오른쪽 버튼으로 테이블, Show Table 데이터 ...)로 돌아가 인터넷 데이터가 저장되지 않았다!

분명히하려면 내 dataGrid1에 두 데이터 (인터넷에서 로컬 en)가 표시됩니다.

무엇이 문제라고 생각하십니까?

 klantenTableAdapter.ClearBeforeFill = false; 

     DigiLocalDataSet dataset = new DigiLocalDataSet(); 

     string MyConString = "SERVER=server;" + 
        "DATABASE=db;" + 
        "UID=uid;" + 
        "PASSWORD=pass;"; 
     string sql = "SELECT klantnr, geslacht, voorletters, roepnaam, achternaam, tussenvoegsel, straat, huisnr, subhuisnr, postcode, plaats, telthuis, telmobiel, email, geboortedatum FROM klanten ORDER BY roepnaam"; 

     MySqlConnection connection = new MySqlConnection(MyConString); 

     MySqlCommand cmdSel = new MySqlCommand(sql, connection); 

     MySqlDataAdapter da = new MySqlDataAdapter(cmdSel); 


     //Fill from internet 
     da.Fill(dataset.klanten); 


     //Fill from local database 
     klantenTableAdapter.Fill(dataset.klanten); 

     klantenTableAdapter.Update(dataset.klanten); 

     //dataset.AcceptChanges(); 

     this.DataContext = dataset.klanten.DefaultView; 

미리 감사드립니다.

+0

'인터넷'행의 상태는 _Unchanged_입니다. 새 테이블에 레코드를 복사하는 것이 좋으며 2 개의 데이터 세트를 유지하는 것이 좋습니다. –

+0

Henk이 말한 것이 사실이라면 (아주 ​​가능성이 있습니다 ;-)) "인터넷"데이터를 편집하십시오. 그러면 해당 행이 업데이트 후에 표시됩니다. – Dabblernl

+0

그게 작동하지 않습니다, 내가 뭘하고 싶은지 실제로 내 로컬 컴퓨터에서 정확히 같은 테이블에 인터넷 MySQL의 테이블 데이터를 복사하는 것입니다. 나는 이것이 옳은 길이라고 생각했지만 어쩌면 그렇지 않을 수도 있습니다. 너희 중 한명이 이걸 만들 생각이 있니? –

답변

0

새로운 소식이지만 SaveChanges도 데이터베이스에 커밋 할 필요가 없습니까?

+0

아니요, EF 컨텍스트에서 SaveChanges가됩니다. –

0

db 참조는 상대 경로를 사용하는 것으로 보입니다. 데이터 집합 마법사는 출력 디렉터리에 데이터베이스를 복사하도록 제안합니다. 그러나 서버 탐색기에서는 여전히 원래 데이터베이스를 검사하고 있습니다. 그게 될 수 있을까요? ;-)