100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > c excel批量导入mysql数据库_Excel批量导入数据库

c excel批量导入mysql数据库_Excel批量导入数据库

时间:2019-09-28 02:38:52

相关推荐

c excel批量导入mysql数据库_Excel批量导入数据库

在上个系统中需要用到Excel整体导入的功能整体的核心思路如下:

1、首先将需要导入的Excel上传至服务器

2、为了避免文件名重复,重命名上传的Excel文件

3、将上传的Excel文件读入DataTable中

4、将DataTable读入数据库中

实现起来还是比较简单的,核心代码如下:

界面需要一个FileUpload控件和一个Button

界面代码:

usingSystem;

usingSystem.Data;

namespaceWebApplication1

{

publicpartialclassWebForm1:System.Web.UI.Page

{

protectedvoidPage_Load(objectsender,EventArgse)

{

}

protectedvoidbtnUpload_Click(objectsender,EventArgse)

{

stringpath=Server.MapPath("~/upload/");

//根据日期时间重命名文件

stringfileName=DateTime.Now.ToString("yyyymmddhhMMss")+FileUpload1.FileName;

ExcelManagerem=newExcelManager(path+fileName);

FileUpload1.PostedFile.SaveAs(path+fileName);//另存文件

DataTabledtTable=em.ExecuteGetDataTable(fileName);

em.WriteToDB("studentInfo",dtTable);//导入数据库

}

}

}

using System;

using System.Data;

namespace WebApplication1

{

public partial class WebForm1 : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void btnUpload_Click(object sender, EventArgs e)

{

string path = Server.MapPath("~/upload/");

//根据日期时间重命名文件

string fileName = DateTime.Now.ToString("yyyymmddhhMMss") + FileUpload1.FileName;

ExcelManager em = new ExcelManager(path + fileName);

FileUpload1.PostedFile.SaveAs(path + fileName);//另存文件

DataTable dtTable = em.ExecuteGetDataTable(fileName);

em.WriteToDB("studentInfo", dtTable);//导入数据库

}

}

}

Excel导入数据库控制类

其中需要注意的是

1、连接Excel字符串中HDR的值表示是否有表头,YSE表示导入的EXCEL包括表头,NO反之。

2、IMEX的值有三个

当 IMEX=0 时为“汇出模式”,这个模式开启的 Excel 只能用来做“写入”用途。

当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 只能用来做“读取”用途。

当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 可同时支持“读取”与“写入”用途。

这里是EXCEL导入,对于EXCEL是读取操作,即IMEX=0。

usingSystem.Data.OleDb;

usingSystem.Data;

namespaceWebApplication1

{

///

///excel导入数据库控制类

///

publicclassExcelManager

{

//定义连接

OleDbConnectionoledbConn=null;

///

///构造函数,初始化连接,给连接赋上地址

///

///

publicExcelManager(stringfileUrl)

{

stringstrConn="Provider=Microsoft.Jet.Oledb.4.0;"+"datasource="+fileUrl+";ExtendedProperties='Excel8.0;HDR=NO;IMEX=1'";

oledbConn=newOleDbConnection(strConn);

}

///

///连接Excel表的方法

///

///

publicOleDbConnectionGetCon()

{

if(oledbConn.State==ConnectionState.Closed)

{

oledbConn.Open();

}

returnoledbConn;

}

///

///将上传的Excel数据导入到DataTable中

///

///

///

publicDataTableExecuteGetDataTable(stringfileName)

{

DataSetds=newDataSet();

OleDbDataAdapteroledbda=newOleDbDataAdapter("select*from[Sheet1$]",GetCon());

oledbda.Fill(ds,fileName);

//获取数据集中的第一个表

returnds.Tables[0];

}

///

///将加工好的DataTable导入到数据库中

///

///数据库中的目标表名称

///源表

///

publicboolWriteToDB(stringdestinationTableName,DataTablesourceTable)

{

boolflag=false;

SqlBulkCopyHelperbulkCopyHelper=newSqlBulkCopyHelper();

if(bulkCopyHelper.ExecuteBulkCopy(destinationTableName,sourceTable))

{

flag=true;

}

else

{

flag=false;

}

returnflag;

}

///

///上传文件到服务器的UpLoad文件夹

///

///

///

publicboolIsExcel(stringfileName)

{

boolflag=false;

//获得该文件的扩展名

stringfileExtension=System.IO.Path.GetExtension(fileName).ToLower();

//检查扩展名是否为xls

if(fileExtension.Equals(".xls"))

{

flag=true;

}

else

{

flag=false;

}

returnflag;

}

}

}

using System.Data.OleDb;

using System.Data;

namespace WebApplication1

{

///

/// excel导入数据库控制类

///

public class ExcelManager

{

//定义连接

OleDbConnection oledbConn = null;

///

/// 构造函数,初始化连接,给连接赋上地址

///

///

public ExcelManager(string fileUrl)

{

string strConn = "Provider=Microsoft.Jet.Oledb.4.0;" + "data source=" + fileUrl + ";Extended Properties='Excel 8.0; HDR=NO; IMEX=1'";

oledbConn = new OleDbConnection(strConn);

}

///

/// 连接Excel表的方法

///

///

public OleDbConnection GetCon()

{

if (oledbConn.State == ConnectionState.Closed)

{

oledbConn.Open();

}

return oledbConn;

}

///

/// 将上传的Excel数据导入到DataTable中

///

///

///

public DataTable ExecuteGetDataTable(string fileName)

{

DataSet ds = new DataSet();

OleDbDataAdapter oledbda = new OleDbDataAdapter("select * from[Sheet1$]", GetCon());

oledbda.Fill(ds, fileName);

//获取数据集中的第一个表

return ds.Tables[0];

}

///

/// 将加工好的DataTable导入到数据库中

///

/// 数据库中的目标表名称

/// 源表

///

public bool WriteToDB(string destinationTableName, DataTable sourceTable)

{

bool flag = false;

SqlBulkCopyHelper bulkCopyHelper = new SqlBulkCopyHelper();

if (bulkCopyHelper.ExecuteBulkCopy(destinationTableName, sourceTable))

{

flag = true;

}

else

{

flag = false;

}

return flag;

}

///

/// 上传文件到服务器的UpLoad文件夹

///

///

///

public bool IsExcel(string fileName)

{

bool flag = false;

//获得该文件的扩展名

string fileExtension = System.IO.Path.GetExtension(fileName).ToLower();

//检查扩展名是否为xls

if (fileExtension.Equals(".xls"))

{

flag = true;

}

else

{

flag = false;

}

return flag;

}

}

}批量导入数据助手类

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Data.SqlClient;

///

///批量导入数据助手类

///

publicclassSqlBulkCopyHelper

{

//获取配置文件中的数据库连接字符串

privatestringstrCon=ConfigurationManager.ConnectionStrings["connBasicInfo"].ConnectionString;

privateSqlConnectionsqlCon;

///

///构造函数,初始化连接字符串

///

publicSqlBulkCopyHelper()

{

sqlCon=newSqlConnection(strCon);

}

///

///打开数据库连接

///

///

publicSqlConnectionGetCon()

{

if(sqlCon.State==ConnectionState.Closed)

{

sqlCon.Open();

}

returnsqlCon;

}

///

///将源数据表中的数据批量导入到目标表

///

///目标表

///源表

///

publicboolExecuteBulkCopy(stringtargetTableName,DataTablesourceTable)

{

boolflag=false;

//调用批量拷贝类

using(SqlBulkCopybulkCopy=newSqlBulkCopy(GetCon()))

{

bulkCopy.DestinationTableName=targetTableName;

try

{

//将源表中的数据批量拷贝到目标表

bulkCopy.WriteToServer(sourceTable);

flag=true;

}

catch(Exception)

{

flag=false;

}

returnflag;

}

}

}

using System;

using System.Data;

using System.Configuration;

using System.Data.SqlClient;

///

/// 批量导入数据助手类

///

public class SqlBulkCopyHelper

{

//获取配置文件中的数据库连接字符串

private string strCon = ConfigurationManager.ConnectionStrings["connBasicInfo"].ConnectionString;

private SqlConnection sqlCon;

///

/// 构造函数,初始化连接字符串

///

public SqlBulkCopyHelper()

{

sqlCon = new SqlConnection(strCon);

}

///

/// 打开数据库连接

///

///

public SqlConnection GetCon()

{

if (sqlCon .State ==ConnectionState .Closed )

{

sqlCon.Open();

}

return sqlCon;

}

///

/// 将源数据表中的数据批量导入到目标表

///

/// 目标表

/// 源表

///

public bool ExecuteBulkCopy(string targetTableName, DataTable sourceTable)

{

bool flag = false;

//调用批量拷贝类

using (SqlBulkCopy bulkCopy = new SqlBulkCopy(GetCon()))

{

bulkCopy.DestinationTableName = targetTableName;

try

{

//将源表中的数据批量拷贝到目标表

bulkCopy.WriteToServer(sourceTable);

flag = true;

}

catch (Exception)

{

flag = false;

}

return flag;

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。