数据表循环性能
本文关键字:性能 循环性 循环 数据表 | 更新日期: 2023-09-27 18:01:55
我有一个关于c#中循环数据表的问题
我有一个数据表有大约20000行和60列
我想写一个SQL查询插入所有的数据在DataTable到数据库
我正在使用My Sql
这是我的SQL语法:"Insert into a values (...), (...), (...), ..."
"(…)"是一行中的所有数据
这是c#代码:
DataTable myDataTable; // myDataTable has 20.000 rows and 60 columns
string mySql = "insert into a values "
for(int iRow = 0; iRow < myDataTable.Rows.Count; iRow++)
{
mySql += "(";
for(int iColumn = 0; iColumn < myDataTable.Columns.Count; iColumn++)
{
string value = myDataTable.Rows[iRow][iColumn].ToString()
string parameter = "@" + iRows.ToString() + iColumns.ToString();
// here is some code for add "parameter" and "value" to MySqlCommand
mySql += ","
}
// remove "," at the end of string mySql
mySql = mySql.SubString(0, mySql.Length - 1);
mySql += "),"
}
// remove "," at the end of string mySql
// after that, I will execute mySql command to insert data into database here
当我运行这段代码时,要花很多时间来完成
我试着从"string"改为"StringBuilder",但它只是快了一点。
如何使代码运行得更快?
感谢大家的支持
我在评论中询问了一些时间信息,但是我注意到这行代码:
mySql = mySql.SubString(0, mySql.Length - 1);
我建议将其从循环中删除,并稍微聪明一点,只在需要时添加逗号。
例如,在内部循环中,在mySql
变量的每个参数之前而不是之后添加逗号,除了iColumn == 0
。这样可以避免不必要的逗号每次出现在字符串的末尾。