1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программирован. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление
  2. Чат codeby в telegram перезагрузка. Обсуждаем вопросы информационной безопасности и методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие. Подробнее ...

    Скрыть объявление

Изпользование Sqlbulkcopy класса из пространства имен System.data.sqlc

Тема в разделе ".NET - программирование", создана пользователем NikSoft, 9 окт 2006.

Статус темы:
Закрыта.
  1. NikSoft

    NikSoft Гость

    Репутация:
    0
    Пусть нам надо быстро создать таблицу в SQL Server из файла, строки которого состоят из элементов, разделенных, например, запятой.
    Следующий метод на языке C# решает задачу.

    Код:
    		public void BulkCopy(string pathOfFile)
    {
    DataTable  dataTable = new DataTable();
    DataRow	 dataRow;
    string	 tempLine = "";
    
    StreamReader streamReader  = new StreamReader(pathOfFile);
    string tempLines = streamReader.ReadToEnd();
    streamReader.Close();
    
    string[] splittedArray = tempLines.Split('\n');
    
    string[] tempArray =splittedArray[0].Split(',');
    foreach ( string str in tempArray )
    {
    dataTable.Columns.Add(new DataColumn());
    }
    
    foreach (string str in tempArray)
    {
    dataRow = dataTable.NewRow();
    dataRow.ItemArray = str.Split(',');				
    dataTable.Rows.Add(dataRow);	
    }	
    
    SqlConnection  sqlConnection = new SqlConnection( Connection );
    SqlBulkCopy	 sqlBulkCopy  = new SqlBulkCopy( sqlConnection );
    sqlBulkCopy.BatchSize = dataTable.Rows.Count;
    
    sqlConnection.Open();
    
    sqlBulkCopy.DestinationTableName = "test";
    sqlBulkCopy.WriteToServer(dataTable);
    
    sqlConnection.Close();
    sqlBulkCopy.Close(); 
    }
    В качестве параметра метода BulkCopy задается путь исходного файла. Строки считанного исходного файла хранятся в массиве
    splittedArray. Далее в обьекте таблицы данных dataTable типа DataTable создаем обьекты типа DataColumn, число которых равно числу элементов строки исходного файла. Строки исходного файла расщепляются на элементы и помещяются в
    таблицу данных dataTable. Создаем обьект sqlBulkCopy типа SqlBulkCopy, в свойстве которого BatchSize указываем размер пакета для обработки, а в свойстве DestinationTableName указываем имя таблицы SQL Server. Метод WriteToServer класса SqlBulkCopy пишет данные из таблицы данных dataTable в таблицу test SQL Server, число колонок в которой должно совпадать с числом элементов строки исходного файла.
     
Статус темы:
Закрыта.

Поделиться этой страницей