2013-08-09 2 views
0

Я использую nopcommerce и arvixe хостинг.Как вставить большой кусок данных в db?

У меня есть xml-файл, содержащий все продукты для моего сайта (около 26000 записей). Я написал плагин, который позволяет мне добавлять записи, используя sql-скрипт.

Проблема: Время окончания запроса и только первые 500 - 1000 записей отображаются в дБ. Чтобы вы посоветовали? Может быть, мне нужно переместить мой код в другое место (а не в плагин)?

+0

Как Вы добавляете значения данных в настоящее время? Вы профилировали базу данных? – bhs

+1

, вы не можете реалистично запускать длительный процесс, как это, используя стандартный HTTP. HTTP имеет таймаут. Напишите приложение Windows или вызовите сервер асинхронно. – Liam

+0

Я добавляю значение данных, как описано. При необходимости я могу показать вам код. – Alexandr

ответ

2

Попробуйте SqlBulkCopy:

using (SqlConnection destinationConnection = new SqlConnection(connectionString)) 
{ 
    destinationConnection.Open(); 

    using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destinationConnection)) 
    { 
     bulkCopy.DestinationTableName = "dbo.BulkCopyDemoMatchingColumns"; 
     try 
     { 
      // The reader is a SqlDataReader which has all 26000 records 
      bulkCopy.WriteToServer(reader); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 
     finally 
     { 
      reader.Close(); 
     } 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^