gpt4 book ai didi

c# - 如何加载大量数据到DataTable

转载 作者:行者123 更新时间:2023-11-30 17:05:11 27 4
gpt4 key购买 nike

我正在将数据从 Excel 导出到 DataTable,但是当我的 Excel 文件包含大量行时我遇到了一些性能问题...

public DataView LoadFromExcel()
{
Microsoft.Office.Interop.Excel.Application application =
new Microsoft.Office.Interop.Excel.Application();
Workbook workbook = null;
Worksheet worksheet = null;
string filename = null;
OpenFileDialog file = new OpenFileDialog();
if (true == file.ShowDialog())
{
filename = file.FileName;
}
workbook = application.Workbooks.Open(filename, true, true);
worksheet = workbook.Sheets[1];
Range range = worksheet.UsedRange;
int row = range.Rows.Count;
int columns = range.Columns.Count;
System.Data.DataTable dt = new System.Data.DataTable();
for (int i = 1; i <= columns; i++)
{
dt.Columns.Add((range.Cells[1, i] as Range).Value2.ToString());
}
for (row = 2; row <= range.Rows.Count; row++)
{
DataRow dr = dt.NewRow();
for (int column = 1; column <= range.Columns.Count; column++)
{
dr[column - 1] = (range.Cells[row, column] as
Microsoft.Office.Interop.Excel.Range).Value2.ToString();
}
dt.Rows.Add(dr);
dt.AcceptChanges();
}
workbook.Close(true, Missing.Value, Missing.Value);
application.Quit();
return dt.DefaultView;
}

有什么办法可以解决这个问题吗?请帮忙。

最佳答案

我认为这不是正确的做法。

要向表中插入大量数据,您应该使用数据库的“批量插入”功能,并且在批量插入期间,您应该关闭数据库日志和回滚功能。否则,批量插入就像一堆普通插入一样。

我知道 Oracle 和 SQL Server 有这个功能,一些 NoSQL 数据库也有。由于您没有提到您的数据库是什么,因此用谷歌搜索它会有所帮助。

关于c# - 如何加载大量数据到DataTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16785536/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com