Spec-Zone .ru
спецификации, руководства, описания, API
|
Функции MySQL Connector/Net объемный загрузчик class, который обертывает оператор MySQL LOAD DATA INFILE
. Это дает MySQL, Connector/Net возможность загрузить файл данных
от локального или удаленного узла до сервера. Затронутый class MySqlBulkLoader
. У
этого class есть различные методы, основной быть load
заставить указанный файл быть
загруженным в сервер. Различные параметры могут быть установлены, чтобы управлять, как файл данных
обрабатывается. Это достигается посредством установки различных свойств class. Например, используемый
разделитель полей, такой как запятая или вкладка, может быть определен, наряду с разделителем записи, таким как
новая строка.
Следующий код показывает простой пример использования MySqlBulkLoader
class.
Сначала пустая таблица должна быть составлена, в этом случае в test
база данных:
CREATE TABLE Career ( Name VARCHAR(100) NOT NULL, Age INTEGER, Profession VARCHAR(200));
Простой разграниченный вкладкой файл данных также создается (он мог использовать любой другой разделитель полей, такой как запятая):
Table Career in Test DatabaseName Age ProfessionTony 47 Technical WriterAna 43 NurseFred 21 IT SpecialistSimon 45 Hairy Biker
Отметьте, что с этим тестовым файлом первые три строки должны будут быть проигнорированы, поскольку они не
содержат табличные данные. Это может быть достигнуто, используя NumberOfLinesToSkip
свойство. Этот файл может тогда быть загружен и использоваться, чтобы заполнить Career
таблица в test
база данных:
using System;using System.Text;using MySql.Data;using MySql.Data.MySqlClient;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { string connStr = "server=localhost;user=root;database=test;port=3306;password=******;"; MySqlConnection conn = new MySqlConnection(connStr); MySqlBulkLoader bl = new MySqlBulkLoader(conn); bl.TableName = "Career"; bl.FieldTerminator = "\t"; bl.LineTerminator = "\n"; bl.FileName = "c:/career_data.txt"; bl.NumberOfLinesToSkip = 3; try { Console.WriteLine("Connecting to MySQL..."); conn.Open(); // Upload data from file int count = bl.Load(); Console.WriteLine(count + " lines uploaded."); string sql = "SELECT Name, Age, Profession FROM Career"; MySqlCommand cmd = new MySqlCommand(sql, conn); MySqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(rdr[0] + " -- " + rdr[1] + " -- " + rdr[2]); } rdr.Close(); conn.Close(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } Console.WriteLine("Done."); } }}
Дополнительная информация о LOAD DATA INFILE
может быть найден в Разделе
13.2.6,"LOAD DATA INFILE
Синтаксис". Дополнительная информация о
MySqlBulkLoader
может быть найден в справочной документации, которая была включена
с Вашим соединителем.