DataGridView更新

问题描述:

我在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时幕后完成的。谢谢您的帮助。

山姆,

更新需要一个表,所以你可以尝试这样的:

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

这里您可以有适当的东西来代替TABLETYPE。

但是更好的方法是使用拖放功能并从代码中学习。

  1. 选择数据|查看数据源。您的 数据集应该在 数据源窗口中可见。
  2. 将一个表格拖到 一个(新)表格。 VS2005将增加一个零件的加载 和几行 的代码。

表单现在将有一个数据集的实例,这是Adapter.Fill和.Update方法的参考点。

+0

是的,这工作,但我会尝试你所提到的。谢谢。 – Sam 2009-02-13 23:48:53

桌面适配器上的更新需要数据集

您需要实例化一个SCDB的DataSet用表,更新表,并调用更新为表适配器。

+0

是的,但我没有定义任何这一点,我怎么能找到它是什么c alled?如果我尝试使用scDB,它告诉我这是一种类型......这是有道理的。 – Sam 2009-02-13 23:34:03

如果您已将适当的TableAdapter配置为使用指定的DataTable(右键单击TableAdapter部分并选择“Configure ...”),您将拥有多种选项。

我自己的DataTable这样做后,我能够通过

  • 强类型的DataTable
  • 的DataSet
  • 的DataRow的DataRow()更新 - 数据行的数组,如果多个需要更新
  • 个人列(如果你有独特的关键将行连接到)