2013-11-25 5 views
0

Windows 용 DevExpress XtraGrid/View를 사용하고 있습니다. 그리드의 데이터 소스는 데이터 세트에 연결된 바인딩 소스입니다. 내 문제는,이 테이블 어댑터는 데이터 테이블을 업데이트하지 않는다는 것입니다. 문제없이 새로운 행을 삽입 할 수는 있지만 업데이트 할 수는 없습니다. 오류 메시지가 표시되지 않습니다. 변경 사항을 저장하면 행 값이 되돌아갑니다. 이것은 행의 모든 ​​열에 대해 발생합니다.GridView가 DataTable을 업데이트하지 않습니다.

  ' Class variable 
      Private _invoiceDetailsAdapter As dsInvoiceDetailsTableAdapters.inv_InvoiceDetailsTableAdapter = New dsInvoiceDetailsTableAdapters.inv_InvoiceDetailsTableAdapter() 

      'Save Data 
      InvInvoiceLineBindingSource.EndEdit() 
      _invoiceDetailsAdapter.Update(DsInvoiceDetails.inv_InvoiceDetails) 

      'Load 
      DsInvoiceDetails.inv_InvoiceDetails.Clear() 
      If Me._invoiceId > 0 Then 
       _invoiceDetailsAdapter.Fill(DsInvoiceDetails.inv_InvoiceDetails, _invoiceId) 
       InvInvoiceLineBindingSource.Sort = "LineNum" 
      End If 

내가 아무 소용, 데이터 세트와 함께 정기적으로 DataGridView를 사용하여 시도했기 때문에이 데이터 집합 자체이어야 알아 냈어요 : 여기에 데이터를 저장 한 후 다시로드 내 코드입니다. 마법사를 통해 데이터 집합을 생성하고 Insert & 업데이트 매개 변수에 ColumnName 및 SourceColumn 속성을 추가해야했습니다. Insert & 업데이트의 매개 변수는 속성이 관련된 한 동일하게 보입니다.

또한 새로운 데이터 세트, 데이터 테이블, 바인딩 소스 및 테이블 어댑터를 만들려고했습니다. 나는 심지어 DataAdapter를 시도했지만 차이점은 없었다. 필자는 문자 그대로 2 주 동안 속성 및 디버깅을 살펴보고 원인을 찾으려고 노력했습니다.

누군가 조언을 제공해 줄 수 있습니까?

+0

변경 한 후 새 행으로 이동 할 때 만 업데이트됩니다 보인다 ... 코드 조각에 대해 읽어보십시오. 행을 변경하지 않으면 업데이트되지 않으므로 삽입 할 수 있습니다. 가장 이상한 일, 다른 장소의 버그 일 가능성이 큽니다. 여전히 쳐다보다. 네가 할 수있는 일 있으면 알려줘. – Paul

답변

0

문제는 DevExpress 'XtraGrid 기능입니다.

The XtraGrid does not immediately save an edit value to the linked dataset. The modified row is usually posted to the data object when focus is moved to another grid row. You can programmatically force the update by calling the UpdateCurrentRow method. In your case you should only call the CloseEditor and UpdateCurrentRow methods before updating the dataset via the DB adapter object.

그래서 사용자는 하나 개의 행을 업데이트하는 경우, 이러한 변경은 아무데도 로 이동합니다.

http://www.devexpress.com/Support/Center/Question/Details/A327

관련 문제