如何在数据表中添加多个空白行?我的情况是这样的。我有一个 sql 查询,它生成了一个数据集。它有 4 个要加入的表和大约 100000 行要显示。在向用户显示结果时,我需要有条件地将一些字段嵌入到数据表中。所以我正在用我的必填字段创建一个新的数据表,循环第一个,第二个创建新行。我用于我的网格的数据源。但是我可以看到 sql 运行它的查询并使结果集比我的循环更快(它处理查询并在 RAM 中创建行)比我的简单循环(仅创建行)快得多。为什么会这样?我怎样才能提高我的速度?我怀疑条件检查,所以我删除了它们。我仍然得到相同的结果。
示例代码
查询是如此之大,如果我分享它违反公司政策。所以我将展示代码的一些部分来解释情况
select ItemCode,Sku from tblStock ts join tblItemGroup im on ts.ItemCode=im.ItemCode
正在进入数据集 dsItems
创建表 dtGridItems
像
dtGridItems = new DataTable();
dtGridItems.Columns.Add("ImgPath", typeof(String));
dtGridItems.Columns.Add("ItemCode", typeof(String));
dtGridItems.Columns.Add("sku", typeof(Long));
然后像这样填充该数据表
foreach (DataRow drItem in dsItems.Tables[0].Rows)
{
DataRow drGridItem = dtGridItems.NewRow();
if(drGridItem["ItemCode"]=="SHIRTS"){
drGridItem["ImgPath"] = Shirts path;
}else if(drGridItem["ItemCode"]=="Pants"){
drGridItem["ImgPath"] = Pants path;
}
drGridItem["ItemCode"] = drItem["ItemCode"];
drGridItem["sku"] = drItem["sku"];
dtGridItems.Rows.Add(drGridItem);
}
这就是我使用的方式。当然 image 不是我使用的列。但如果我需要解释实际代码,我需要解释我们软件的很大一部分。然后只有我可以解释为什么要求来到这里。
第二次编辑-----
由于问题还不清楚
对不起,如果我的问题不清楚。我不是想将一个表复制到另一个表。我正在尝试将表提取到 .net 中的数据集。我的问题不是sql server的效率。我的问题是数据表(在 .net 中)填充如何比我手动填充数据集更快。有没有办法一次在数据表中创建“n”行并循环填充它们?我可以在数据行中一次设置多列数据吗?