当前位置:数据库 > SQLServer >>

将Excel文件数据导入到SqlServer数据库的三种方案

方案一: 通过OleDB方式获取Excel文件的数据,然后通过DataSet中转到SQL Server,这种方法的优点是非常的灵活,可以对Excel表中的各个单元格进行用户所需的操作。

 

  1. openFileDialog = new OpenFileDialog();  
  2. openFileDialog.Filter = "Excel files(*.xls)|*.xls";  
  3.  
  4. if(openFileDialog.ShowDialog()==DialogResult.OK)  
  5. {  
  6.     FileInfo fileInfo = new FileInfo(openFileDialog.FileName);  
  7.     string filePath = fileInfo.FullName;  
  8.     string connExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0";  
  9.       
  10.     try 
  11.     {  
  12.         OleDbConnection oleDbConnection = new OleDbConnection(connExcel);  
  13.         oleDbConnection.Open();  
  14.           
  15.         //获取excel表  
  16.         DataTable dataTable = oleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);  
  17.  
  18.         //获取sheet名,其中[0][1]...[N]: 按名称排列的表单元素  
  19.         string tableName = dataTable.Rows[0][2].ToString().Trim();  
  20.         tableName = "[" + tableName.Replace("","") + "]";  
  21.  
  22.         //利用SQL语句从Excel文件里获取数据  
  23.         //string query = "SELECT classDate,classPlace,classTeacher,classTitle,classID FROM " + tableName;  
  24.         string query = "SELECT 日期,开课城市,讲师,课程名称,持续时间 FROM " + tableName;  
  25.         dataSet = new DataSet();  
  26.  
  27.         //OleDbCommand oleCommand = new OleDbCommand(query, oleDbConnection);  
  28.         //OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);  
  29.         OleDbDataAdapter oleAdapter = new OleDbDataAdapter(query,connExcel);  
  30.         oleAdapter.Fill(dataSet,"gch_Class_Info");  
  31.         //从excel文件获得数据后,插入记录到SQL Server的数据表
  32.         DataTable dataTable1 = new DataTable();  
  33.           
  34.         SqlDataAdapter sqlDA1 = new SqlDataAdapter(@"SELECT classID, classDate,  
  35. classPlace, classTeacher, classTitle, durativeDate FROM gch_Class_Info",sqlConnection1);  
  36.           
  37.         //SqlCommandBuilder sqlCB1 = new SqlCommandBuilder(sqlDA1);  
  38.           
  39.         sqlDA1.Fill(dataTable1);  
  40.  
  41.         foreach(DataRow dataRow in dataSet.Tables["gch_Class_Info"].Rows)  
  42.         {  
  43.             DataRow dataRow1 = dataTable1.NewRow();  
  44.               
  45.             dataRow1["classDate"] = dataRow["日期"];  
  46.             dataRow1["classPlace"] = dataRow["开课城市"];  
  47.             dataRow1["classTeacher"] = dataRow["讲师"];  
  48. &nb
补充:软件开发 , C# ,
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,