在winform应用程序中更新dataGridView

时间:2011-08-03 11:45:04

标签: c# .net winforms dataset

我在winform app中有一个dataGridView,我在DAL类中使用dataSet显示数据

DataSet ds2 = DAL.Display_all();
dataGridView1.DataSource = ds2;
dataGridView1.DataMember = "To_display";

如果有人在gridView中更改数据(我需要回到DAL类),我如何更新返回我的数据?

3 个答案:

答案 0 :(得分:1)

使用DataAdapter.Update方法。

传递DataSet作为参数。

在调用Update方法之前,您可以使用DataSet.HasChanges查看是否有任何更改。

答案 1 :(得分:0)

试试这个:

dataGridView1.ResetBindings();
  

使绑定到BindingSource的控件重新读取列表中的所有项并刷新其显示的值。 MSDN

希望这有帮助。

答案 2 :(得分:0)

如果循环遍历DataGridView的每一行,您可以使用以下方法获取特定行上指定列的值。

    private T GetDataGridViewTextBoxValue<T>(int rowIndex, string columnName)
    {
        try
        {
            return (T)Convert.ChangeType(dataGridViewImport.Rows[rowIndex].Cells[columnName].Value, typeof(T));
        }
        catch (Exception e)
        {
            throw new InvalidOperationException(String.Format("Row : {0}, column : {1} could not be cast to {2}", rowIndex, columnName, typeof(T)), e);
        }
    }

你可以使用这样的方法。

for(int i=0;i< ds2.Tables[0].Rows.Count(); i++)
{
    var column1 = GetDataGridViewTextBoxValue<string>(i, "column1");
    //Get the rest of the row values.
    //In your DAL class you must have a Method that updates the row 
    //and then just pass in the values that you want.
}