2013-11-28 71 views
0

我必須綁定兩個的DataGridView的任務,主要的問題我看不到的變化,當我投BindingSource的數據源的DataSet(我需要這個SqlDataAdapter)。(關閉)的BindingSource檢測變化問題

我可以通過刪除數據庫表內容來解決這個問題,但這不適合我。

我可以捕捉到這些事件,但我需要在處理表單時更新數據庫。

var bs = (BindingSource)dataGridView1.DataSource; 
var set = (DataSet)bs.DataSource; //here DataSet HasChanges() method always returns true 

當我在SqlDataAdapter的更新()使用來自DataSet中表和填寫()方法,爲我做的插入,因爲值總是顯示爲新。

雖然說得好,但我希望我成功了。

謝謝。

EDIT

通過初始化關於類級別數據集和添加AcceptChanges方法固定它。 也從刪除鑄造BindingSource

數據集的初始化代碼段:

dataSetT = new DataSet(); 
      dataSetT.ReadXmlSchema(xmlSchemeFile); 
      dataSetT.ReadXml(populateDataSet == null ? xmlSchemeFile : xmlDataFile, XmlReadMode.IgnoreSchema); 

      var autoSource = new BindingSource(); 
      var repairSource = new BindingSource(); 

      autoSource.DataSource = dataSetT; 
      autoSource.DataMember = "Auto"; 
      repairSource.DataSource = autoSource; 
      repairSource.DataMember = "VIN_FK"; 

      dataGridView1.AutoGenerateColumns = true; 
      dataGridView2.AutoGenerateColumns = true; 
      dataGridView1.DataSource = autoSource; 
      dataGridView2.DataSource = repairSource; 
      dataSetT.AcceptChanges(); 

隨着現在AcceptChanges方法dataSetT.HasChanges()返回一個現實的值。然後我使用DataAdapter更新方法。

案件關閉。

回答

0

我找到了我的問題的答案,描述是在編輯的問題。 謝謝。