Asp.net中Excel数据导入到SQL Server
来源:互联网 发布:java求某年某月的天数 编辑:程序博客网 时间:2024/03/28 22:46
1、首先在前台添加一个upfileload文件上传控件和一个button按钮,upfileload上传控件用于读取Excel文件!
2、GetExcelData()函数用于读取Excel文件并填写到一个DateSet中,由于微软对07以后的Excel的数据结构作了修改,所以针对07以前的版本和07及其以后的版本使用不同的连接串。
string connStr03 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0;"; ; string connStr07 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0;HDR=YES'";由于Excel文件可能无法读取到,在读取之前最好先将文件上传:
inputFile.SaveAs(Server.MapPath("~/" + System.IO.Path.GetFileName(inputFile.PostedFile.FileName)));string filePath = Server.MapPath("~/" + System.IO.Path.GetFileName(inputFile.PostedFile.FileName));
3、InsertDB()函数用于将存储Excel数据的DateSet中的数据导入到SQL Server中。
具体代码如下:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Data.SqlClient;using System.Text;using System.Data.OleDb;public partial class _Default : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { } /// <summary> /// 该方法实现从Excel中导出数据到DataSet中,其中filepath为Excel文件的绝对路径,sheetname为表示那个Excel表,此用Sheet1; /// </summary> /// <param name="ds">ds</param> private void InsertDB(DataSet ds) { string CONNECTION_STRING = @"Data Source=(local); Initial Catalog=test;Integrated Security=false;User ID=sa;Password=sa;"; SqlConnection _con = new SqlConnection(CONNECTION_STRING); SqlCommand cmd = new SqlCommand(); cmd.Connection = _con; StringBuilder sb = new StringBuilder(); if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { sb.Append(" insert into ynzt6(time,cul1,cul2,cul3,cul4) values('"); sb.Append(ds.Tables[0].Rows[i].ItemArray[0].ToString() + "','"); sb.Append(ds.Tables[0].Rows[i].ItemArray[1].ToString() + "','"); sb.Append(ds.Tables[0].Rows[i].ItemArray[2].ToString() + "','"); sb.Append(ds.Tables[0].Rows[i].ItemArray[3].ToString() + "','"); sb.Append(ds.Tables[0].Rows[i].ItemArray[4].ToString() + "' ) "); cmd.CommandText = sb.ToString(); } } _con.Open(); int j = cmd.ExecuteNonQuery(); _con.Close(); if (j > 0) { lblMessage.Text = "Insert into PDB_YN_BEF table Sucessfully!"; } } /// <summary> /// get data source from excel file /// </summary> /// <returns>dataset ds</returns> private DataSet GetExcelData() { DataSet ds = new DataSet(); inputFile.SaveAs(Server.MapPath("~/" + System.IO.Path.GetFileName(inputFile.PostedFile.FileName))); string filePath = Server.MapPath("~/" + System.IO.Path.GetFileName(inputFile.PostedFile.FileName)); string connStr03 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0;"; ; string connStr07 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0;HDR=YES'"; string queryStr = "SELECT * FROM [Sheet1$]"; OleDbConnection conn03 = new OleDbConnection(connStr03); OleDbConnection conn07 = new OleDbConnection(connStr07); if (inputFile.HasFile) { string fileExt = System.IO.Path.GetExtension(inputFile.FileName); if (fileExt == ".xls") { OleDbDataAdapter myAdapter = new OleDbDataAdapter(queryStr, conn03); myAdapter.Fill(ds); } else if (fileExt == ".xlsx") { OleDbDataAdapter myAdapter = new OleDbDataAdapter(queryStr, conn07); myAdapter.Fill(ds); } else { lblMessage.Text = "The file is not exist!"; } } return ds; } protected void btnUpload_Click1(object sender, EventArgs e) { DataSet ds = GetExcelData(); InsertDB(ds); }}
0 0
- Asp.net中Excel数据导入到SQL Server
- asp.net实现excel数据到sql server的导入
- ASP.NET中如何把EXCEL中数据导入到SQL SERVER
- ASP.NET Excel数据导入SQL Server
- asp.net Excel导入数据到sql
- asp.net 将EXCEL表格数据导入到SQL Server数据库
- asp.net 操作Excel表数据导入到SQL Server数据库
- asp.net MVC3 excel导入到sql server
- 转:Asp.Net将Excel数据导入Sql Server数据库
- ASP.NET从excel中导入试题到SQL SERVER 2005数据库
- VB.NET将EXCEL中的数据导入到SQL SERVER
- Asp Excel数据导入到Access,Sql Server中示例代码
- ASP.NET导入excel数据到Sql server2005
- Asp.net中关于excel文件批量导入SQL Server数据表
- asp.net中Excel导入sql server数据库
- 把Excel中数据导入到SQL Server中
- ASP.NET将excel中数据导入到sql server2005数据表(优化版)
- Excel 数据导入到 Access、Sql Server 中示例代码
- 1、typedef 与 define 区别 2、 struct和typedef struct
- C/C++每日小练(八)——蚂蚁
- >和>>重定向输出
- C#中使用MailMessage类发送邮件(QQ邮箱或者163邮箱)的小细节
- 指针与数组
- Asp.net中Excel数据导入到SQL Server
- AndroidICS4.0版本的launcher拖拽的流程
- java采集网页图片
- Git命令详解
- 深入探索spring技术内幕(三): 剖析spring IoC工作原理和配置依赖注入
- C++ int 与 byte[] 的相互转换
- python2.7采集图片
- Windows下Mysql5.6启用监控执行脚本的日志。
- printf/cout调用在Eclipse CDT控制台(console)中无实时输出