2013-04-02 7 views
-2

У меня есть файл Excel показано нижеИмпорт данных из Excel в MySQL с помощью C#

enter image description here

Я хочу прочитать 1-ое чтение только все названия школы & школы адрес & вставить их в SchoolInfo таблице базы данных MySQL.

После этого я хочу прочитать данные для каждой школы & вставить ее в таблицу StudentsInfo, которая имеет внешний ключ, связанный с таблицей SchoolInfo.

Я читаю листы excel что-то вроде этого.

государственного статическая сила импорт (строка имя_файл) { строки strConn = "Provider = Microsoft.ACE.OLEDB.12.0; источник данных =" + имя_файл + "; Extended Properties = \" Excel 12,0; HDR = Нет ; IMEX = 1 \ "";

var output = new DataSet(); 

    using (var conn = new OleDbConnection(strConn)) 
    { 
     conn.Open(); 

     var dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); 

     if (dt != null) 
      foreach (DataRow row in dt.Rows) 
      { 
       string sheet = row["TABLE_NAME"].ToString(); 

       var cmd = new OleDbCommand("SELECT * FROM [+"+sheet+"+]", conn); 
       cmd.CommandType = CommandType.Text; 

       OleDbDataAdapter xlAdapter = new OleDbDataAdapter(cmd); 

       xlAdapter.Fill(output,"School"); 
      } 
    } 

} 

Теперь я имею данные в DataTable набора данных, теперь как я прочитал требуемые данные & вставить его в моей SQL таблицы.

ответ

0

Попробуйте следующие шаги:

  1. Чтение из листа Excel

Сначала вы должны создать соединение OleDB в файл Excel.

String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + 
"Data Source=" + path + ";" + 
"Extended Properties=Excel 8.0;"; 
OleDbConnection xlConn = new OleDbConnection(connectionString); 
xlConn.Open(); 

Здесь путь относится к расположению электронной таблицы Excel. Например. "D: \ abc.xls" Затем вам нужно запросить таблицу. Для этого мы должны сначала определить имена для таблицы и столбцов. Нажмите здесь чтобы узнать как. Теперь создайте объект команды.

OleDbCommand selectCmd = new OleDbCommand("SELECT * FROM [Sheet1$]", xlConn); 

Теперь мы должны хранить вывод из выбора команды в DataSet с помощью DataAdapter

OleDbDataAdapter xlAdapter = new OleDbDataAdapter(); 
objAdapter1.SelectCommand = selectCmd; 
DataSet xlDataset = new DataSet(); 
xlAdapter.Fill(xlDataset, "XLData"); 
  1. сохранить данные в переменные

Теперь извлекать данные ячейки в переменные итеративно для всей таблицы с использованием

variable = xlDataset.Tables[0].Rows[row_value][column_value].ToString() ; 
  1. Записать данные из переменных в базу данных MySQL

Теперь подключиться к базе данных MySQL, используя соединение ODBC

String mySqlConnectionString = "driver={MySQL ODBC 5.1 Driver};" + 
"server=localhost;" + "database=;" + "user=;" + "password=;"; 
OdbcConnection mySqlConn = new OdbcConnection(mySqlConnectionString); 
mySqlConn.Open(); 

Построить ваше заявление INSERT, используя переменные, в которых данные были хранятся на листе Excel.

OdbcCommand mySqlInsert = new OdbcCommand(insertCommand, mySqlConn); 
mySqlInsert.ExecuteScalar() 
+0

Я знаю, как мы можем читать файл Excel и все. Реальной проблемой является несколько данных, то есть школа 1, школа2 и т. Д.Как мне манипулировать для чтения этих значений –

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