那种写法效率高呢

「已注销」 2011-08-23 11:59:01
private void test1()
{
for (int i = 0; i < dt.Rows.Count; i++)
{
StringBuilder sbValues = new StringBuilder();
for (int j = 0; j < dt.Columns.Count; j++)
{
sbValues.Append(dt.Rows[i][j].ToString()).Append(",");
}
//插入数据库

}
}

private void test2()
{
StringBuilder sbValues = new StringBuilder();
for (int i = 0; i < dt.Rows.Count; i++)
{
sbValues.Length = 0;
for (int j = 0; j < dt.Columns.Count; j++)
{
sbValues.Append(dt.Rows[i][j].ToString()).Append(",");
}
//插入数据库

}
}
...全文
113 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰川711 2011-08-23
  • 打赏
  • 举报
回复
如果数据量大, 下面的方法明显效率会比上面的方法快非常多, 占用资源会更少,
  • 打赏
  • 举报
回复
建议楼主这样写....

private void test2()
{
StringBuilder sbValues = new StringBuilder();
int rows = dt.Rows.Count;
for (int i = 0; i < rows; i++)
{
sbValues.Length = 0;
int columns = dt.Columns.Count;
for (int j = 0; j < columns; j++)
{
sbValues.Append(dt.Rows[i][j].ToString()).Append(",");
}
//插入数据库
}
}

可以看下for循环的实现...
liukai625 2011-08-23
  • 打赏
  • 举报
回复
下面的要好,不用每次给StringBuilder重新分配空间
begintransaction 2011-08-23
  • 打赏
  • 举报
回复
下面的要好些
「已注销」 2011-08-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 z_dota 的回复:]
在数据库中用存储过程写
[/Quote]
不要转移话题,我就是说这这两种写法,你说得牛头不对马嘴
Dotar 2011-08-23
  • 打赏
  • 举报
回复
在数据库中用存储过程写
「已注销」 2011-08-23
  • 打赏
  • 举报
回复
有几千条数据
a764777416 2011-08-23
  • 打赏
  • 举报
回复
下面的好。过来首发分。
woshimaikou 2011-08-23
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 sglcj 的回复:]

第二种会高点,你把StringBuilder 放到循环里面的话 会每循环一次就会创建一个新对象,而第二种放到外面就只会创建一个对象
[/Quote]
同意
End 2011-08-23
  • 打赏
  • 举报
回复
第二种会高点,你把StringBuilder 放到循环里面的话 会每循环一次就会创建一个新对象,而第二种放到外面就只会创建一个对象
老毕 2011-08-23
  • 打赏
  • 举报
回复
单纯从2种编码的方式上讲,第2种重用同一个StringBuilder对象,会比第1种中反复构造StringBuilder对象效率一些。

即使如此,第2种方式中,也应该用StringBuilder的方法Clear(),而不是直接把长度置零。这样更符合语义逻辑一些。
SanSan 2011-08-23
  • 打赏
  • 举报
回复
子夜__ 2011-08-23
  • 打赏
  • 举报
回复
如果要更新 删除这些你咋办那。
小心眼 2011-08-23
  • 打赏
  • 举报
回复
test2比较快,至少不用重新将对象实例化

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧