【问题标题】:DataGrid ItemsSource to DataTable to CSVDataGrid ItemsSource 到 DataTable 到 CSV
【发布时间】:2016-04-11 09:48:34
【问题描述】:

我有一个DataTable,它向DataGrid 提供项目。 DataTableCSV 文件填充。我允许用户添加新行,但我不确定如何更新DataTable,然后使用它来更新CSV

首先,我相信我应该在DataGrid 本身上使用RowEditEnding 事件。这是我尝试过的;

private void OnRowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
    var dataTable = new DataTable();
    var itemsSource = subbieDataGrid.ItemsSource as IEnumerable;
    foreach (var item in subbieDataGrid.Items)
    {
        dataTable.Rows.Add(item);
    }
    CommonEngine.DataTableToCsv(dataTable, @"C:\Users\dand\Desktop\Subcontractors.csv", ',');
}

但是,我在这里所做的事情有两个问题。首先它不起作用,因为抛出一个错误,说数组比DataTable 长。

其次,当我可以使用原始DataTable 时,我认为创建一个全新的DataTable 并添加原始项目和新项目是低效的,只需将新项目添加到其中并更新@ 987654333@ 文件使用DataTable

但是,我不确定如何执行此操作。

【问题讨论】:

    标签: c# wpf csv datagrid datatable


    【解决方案1】:

    希望你可以跳过这一步,不推荐

    foreach (var item in subbieDataGrid.Items)
    {
        dataTable.Rows.Add(item);
    }
    

    这是在不使用循环的情况下将所有记录从Datagrid 转移到Datatable 的方法

     DataTable previewForexcel = new DataTable();
                    previewForexcel = ((DataView)DatabaseGrid.ItemsSource).ToTable();
    

    试试这个好运!

    【讨论】:

      猜你喜欢
      • 2010-10-04
      • 2011-08-23
      • 2013-01-14
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      • 2015-11-22
      • 1970-01-01
      相关资源
      最近更新 更多