У меня есть вопрос о петлевой DataTable в C#DataTable производительность цикла
У меня есть DataTable около 20,000 строк и 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», но это немного быстрее.
Как сделать код быстрее?
Спасибо за поддержку.
Что такое * здесь есть код для добавления «параметра» и «значение» в MySqlCommand *? –
Нельзя использовать SqlBulkCopy или LINQ to SQL. – Popeye
@Debug Вашему предложению 'SqlBulkCopy' может потребоваться некоторый обзор: * Я использую My Sql * –