2011-07-18 3 views
1

SQL Server CE를 사용하는 Windows CE 응용 프로그램의 목록 상자에 연결된 데이터 집합이 있습니다.데이터베이스에 바인딩 된 목록 상자에서 데이터를 저장하는 중 C#

"Codigos"라는 이름의 데이터 세트에는 id와 "code"필드라는 두 개의 필드가있는 테이블이 하나만 있습니다.

수동으로 데이터를 테이블에 삽입하고 목록 상자에 제대로로드합니다.

목록 상자에 새 값을 추가하고 저장하려고하면 문제가 발생합니다.

DatalogicDataSet.CodigosRow newCodigosRow = datalogicDataSet.Codigos.NewCodigosRow(); 
newCodigosRow.codigo = "003"; 
datalogicDataSet.Codigos.Rows.Add(newCodigosRow); 

이것은 "003"값 목록 상자에 새 행을로드 :

내가 해봤 코드입니다. 나는 또한이 시도

private void button1_Click(object sender, EventArgs e) 
    { 
     datalogicDataSet.AcceptChanges();    
    } 

: 데이터베이스를 업데이트 할 버튼의 클릭 이벤트에 코드를 연결

I

private void button1_Click(object sender, EventArgs e) 
    {    
     try 
     { 
      this.codigosBindingSource.EndEdit(); 
      this.codigosTableAdapter.Update(this.datalogicDataSet.Codigos); 
      MessageBox.Show("Update successful"); 
     } 
     catch (System.Exception ex) 
     { 
      MessageBox.Show("Update failed"); 
     } 
    } 

그러나 그들 중 어느 것도 작동, 데이터베이스 업데이트되지 않습니다 .

제안 사항?

답변

0

경우 누구의 솔루션은 같은 문제를 찾을 발생합니다.

문제는 데이터베이스가 올바르게 업데이트되었지만 내 컴퓨터에는 업데이트되지 않았으며 Windows CE가 설치된 터미널에만 문제가 있다는 것입니다. 이는 응용 프로그램이 Visual Studio 2008을 통해 실행될 때 응용 프로그램이 Windows CE 터미널 장치로 데이터베이스를 복사하기 때문에 발생합니다.

그래서 응용 프로그램을 실행할 때마다 데이터베이스에 업데이트 된 데이터 대신 원본 데이터가로드됩니다. 그래서 그것은 잘못된 것처럼 보였지만, 터미널 장치에있는 것이 올바르게 업데이트되고있었습니다.

프로덕션 프로그램을 생성하여 Windows CE를 사용하여 장치에 설치하면 문제가 발생하지 않고 데이터베이스가 올바르게 업데이트됩니다.

0

시도 :

private void button1_Click(object sender, EventArgs e) 
    { 
     DatalogicDataSet.CodigosRow newCodigosRow = datalogicDataSet.Codigos.NewCodigosRow(); 
     newCodigosRow.codigo = "003"; 
     datalogicDataSet.Codigos.Rows.Add(newCodigosRow); 
     datalogicDataSet.AcceptChanges();    
    } 
+0

여전히 작동하지 않습니다. '저장'버튼을 누르면 새 행이 목록 상자에 추가되지만 데이터는 데이터베이스에 저장되지 않습니다 (예 : 응용 프로그램을 다시 시작하면 원래 데이터 만 표시되고 새 행은 표시되지 않습니다. – rfc1484

+0

테이블 구조를 보여 주시겠습니까? Codigos 테이블이 있습니까? – ysrb

+0

테이블과 데이터베이스는 "서버 탐색기"관리자를 사용하여 작성되었습니다. 데이터베이스에는 "Codigos"라는 테이블이 하나만 있습니다. 이 테이블에는 기본 키와 자동 증가로 설정된 id 필드 (BigInt 유형)와 nvarchar 유형 인 "codigo"필드라는 두 개의 필드가 있습니다. – rfc1484

관련 문제