【问题标题】:Dataset or DataGrid to SQL Server Database Table数据集或 DataGrid 到 SQL Server 数据库表
【发布时间】:2017-02-26 12:32:26
【问题描述】:

我有一个DataGrid,我用来自DataSet 的数据填充了它。 DataSet 使用OpenFileDialog 从 Excel 文件中获取数据。我想将此数据插入到我的 SQL Server Express 表中。我怎样才能做到这一点?

我填写DataGrid的代码:

private void btnOpen_Click_1(object sender, RoutedEventArgs e)
{
    OpenFileDialog openfile = new OpenFileDialog();
    openfile.DefaultExt = ".xlsx";
    openfile.Filter = "(.xlsx)|*.xlsx";

    //openfile.ShowDialog();

    var browsefile = openfile.ShowDialog();

    if (browsefile == true)
    {
        txtFilePath.Text = openfile.FileName;
        FileStream stream = File.Open(txtFilePath.Text, FileMode.Open, FileAccess.Read);

        Excel.IExcelDataReader excelReader = Excel.ExcelReaderFactory.CreateOpenXmlReader(stream);
        excelReader.IsFirstRowAsColumnNames = true;

        DataSet resultexc = excelReader.AsDataSet();
        dtGrid.ItemsSource = resultexc.Tables[0].DefaultView;
        excelReader.Close();
    }
}

我看过一些教程,但我不明白。感谢您的帮助!

【问题讨论】:

标签: c# sql sql-server wpf datagrid


【解决方案1】:

DataSet 对象包含一个 Tables 属性。按照他们在文档中提供的示例,您应该能够创建 SqlCommands 以适当地更新您的 SQL 服务器表。

此选项可以更好地控制您插入的数据,并在您的源数据与目标的对齐方式不如BULK INSERTSqlBulkCopy 要求时提供灵活性。

【讨论】:

  • 如果我完全理解这一点,这有助于我将 SQL 数据库中的数据填充到 DataSet.Tables。我想要这个相反。
  • @vlaszlo 我的回答建议遍历源(DataSet)中的表->列->行,以更新或将新数据插入目标(SQL 数据库)。您可以完全控制指定来源和目的地~
猜你喜欢
  • 1970-01-01
  • 2012-04-25
  • 2012-04-10
  • 1970-01-01
  • 2012-03-13
  • 1970-01-01
  • 2023-04-05
  • 2012-06-10
  • 1970-01-01
相关资源
最近更新 更多