gpt4 book ai didi

c# - DataTable LoadDataRow 与 ImportNewRow 与 Rows.Add

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

在此Link我发现我新的快速(比 Rows.Add())实现将数据添加到新的 DataTable(或者在我认为如此的列表中......(:对于等一下)

我记得在某处读到 ImportRow() 是最快的尽管似乎以这种方式使用 ImportRow 不会更新表行,但它像 DataTable.Clone() 吗?

实现从循环中的自定义数据加载到表中的多行的最快方法是什么?

var returnedDtFromLocalDbV11 =  DtFromDb(strConnName, queryStr, strReturnedDtName);
NewDtForIns = returnedDtFromLocalDbV11.Clone();
Stopwatch SwSqlMdfLocalDb11 = new Stopwatch();
SwSqlMdfLocalDb11.Start();
NewDtForIns.BeginLoadData();

for (int i = 0; i < 1000000; i++)
{
var Dr = NewDtForIns.NewRow();
Dr[tblClients.LastName] = string.Concat(i, "_"+lastNameStr);
Dr[tblClients.FirstName] = string.Concat(i, "_" +firstNameStr);
//NewDtForIns.Rows.Add(Dr) ;
//NewDtForIns.ImportRow(Dr) ;
NewDtForIns.LoadDataRow(new object[] { null, "NewShipperCompanyName", "NewShipperPhone" }, false);
}

NewDtForIns.EndLoadData();
DBRCL_SET.UpdateDBWithNewDtUsingSQLBulkCopy(NewDtForIns, tblClients._TblName);
SwSqlMdfLocalDb11.Stop();
var ResSqlMdfLocalDbv11_0 = SwSqlMdfLocalDb11.ElapsedMilliseconds;

更新

转起来更快!我的错误是在使用 LoadDataRow()

测试示例时,我忘记评论需要时间生成的 3 条数据行
   //var Dr = NewDtForIns.NewRow();
//Dr[tblClients.LastName] = string.Concat(i, "_"+lastNameStr);
//Dr[tblClients.FirstName] = string.Concat(i, "_" +firstNameStr);

现在我的配置中的测试结果是:

Rows.Add()        => ~6700ms
LoadDataRow() => ~5200ms - 5500ms

这很好,但我希望通过 ImportRow()

获得更多性能差异

有什么建议吗?

最佳答案

正如@Magnus 所建议的那样,这是用新行填充 DataTable 的更快方法代码行数少,简洁明了

Stopwatch SwSqlMdfLocalDb11 = new Stopwatch();
SwSqlMdfLocalDb11.Start();
NewDtForIns.BeginLoadData();

for (int i = 0; i < 1000000; i++)
{
NewDtForIns.LoadDataRow(new object[] { null, "NewShipperCompanyName", "NewShipperPhone" }, false);
}

NewDtForIns.EndLoadData();
DBRCL_SET.UpdateDBWithNewDtUsingSQLBulkCopy(NewDtForIns, tblClients._TblName);
SwSqlMdfLocalDb11.Stop();

如果有一种新方法,我会很高兴学习,尽管这对我来说已经是个新闻了……谢谢。

关于c# - DataTable LoadDataRow 与 ImportNewRow 与 Rows.Add,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17122780/

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