2009-02-13 83 views
1

我在C#中使用2005 Windows窗體。我只在這工作了一天,所以請容易。DataGridView更新

我想要一個提交按鈕,保存對DataGridView的更改。我已將數據導入DGV並可進行編輯,但卡在Update()上。

我創建了名爲scDB的.xsd和一個名爲 - SSIS Configurations Staging的DataTable。然後我添加了一個帶有參數的新查詢。

這裏是我到目前爲止的代碼:

//Declared at top of form class  
scDBTableAdapters.SSIS_Configurations_StagingTableAdapter myStagingTableAdapter = new scDBTableAdapters.SSIS_Configurations_StagingTableAdapter(); 


//After a form event    
stagingGrid.DataSource = myStagingTableAdapter.GetDataBy(filterName.Text.ToString()); 

//On Submit click: 

myStagingTableAdapter.Update(?What Goes Here?); 

什麼獲取傳遞給Update方法?我知道它需要一個dataTable,但我不知道如何引用GridView中的內容。在大多數代碼示例中,人們定義了DataTable - 但我不知道。我認爲這是在創建TableAdapter時幕後完成的。謝謝您的幫助。

回答

1

山姆,

更新需要一個表,所以你可以嘗試這樣的:

TableType table = (TableType) stagingGrid.DataSource; 
myStagingTableAdapter.Update(table); 

這裏您可以有適當的東西來代替TABLETYPE。

但是更好的方法是使用拖放功能並從代碼中學習。

  1. 選擇數據|查看數據源。您的 數據集應該在 數據源窗口中可見。
  2. 將一個表格拖到 一個(新)表格。 VS2005將增加一個零件的加載 和幾行 的代碼。

表單現在將有一個數據集的實例,這是Adapter.Fill和.Update方法的參考點。

+0

是的,這工作,但我會嘗試你所提到的。謝謝。 – Sam 2009-02-13 23:48:53

1

桌面適配器上的更新需要數據集

您需要實例化一個SCDB的DataSet用表,更新表,並調用更新爲表適配器。

+0

是的,但我沒有定義任何這一點,我怎麼能找到它是什麼c alled?如果我嘗試使用scDB,它告訴我這是一種類型......這是有道理的。 – Sam 2009-02-13 23:34:03

0

如果您已將適當的TableAdapter配置爲使用指定的DataTable(右鍵單擊TableAdapter部分並選擇「Configure ...」),您將擁有多種選項。

我自己的DataTable這樣做後,我能夠通過

  • 強類型的DataTable
  • 的DataSet
  • 的DataRow的DataRow()更新 - 數據行的數組,如果多個需要更新
  • 個人列(如果你有獨特的關鍵將行連接到)