2013-04-02 66 views
-2

我的Excel文件以下所示的數據導入到mysql使用C#

enter image description here

我想讀1只讀所有學校名稱&學校地址&將其插入MySQL數據庫SchoolInfo表。

之後我想讀取每個學校的數據&將它插入到具有與SchoolInfo表關聯的外鍵的StudentsInfo表中。

我正在閱讀excel表格,就像這樣。

公共靜態無效的導入(字符串文件名){ 字符串 =創建失敗 「供應商= Microsoft.ACE.OLEDB.12.0;數據源=」 +文件名+ 「;擴展屬性= \」 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"); 
      } 
    } 

} 

現在我的數據集的數據表中有數據,現在我如何讀取所需的數據&在我的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); 

現在我們使用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數據庫

現在使用ODBC連接

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

構造使用其中的數據一直是變量INSERT語句中連接到MySQL數據庫從Excel工作表中存儲。

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

我知道我們如何讀取excel文件和所有。真正的問題是多種數據,即school1,school2等。我如何操作以讀取這些值 –