展会信息港展会大全

c#将Excel数据导入到数据库的实现代码
来源:互联网   发布日期:2016-01-26 10:55:02   浏览:1933次  

导读:这篇文章主要介绍了c 将Excel数据导入到数据库的实现代码,有需要的朋友可以参考一下假如Excel中的数据如下:数据库建表如下:其中Id为自增字段:代码:代码如下:using System;using System Collections Gener ...

这篇文章主要介绍了c#将Excel数据导入到数据库的实现代码,有需要的朋友可以参考一下

假如Excel中的数据如下:

数据库建表如下:

其中Id为自增字段:

代码:

代码如下:

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.OleDb;

using System.Configuration;

using System.Data.SqlClient;

namespace InExcelOutExcel

{

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

{

protected void Page_Load(object sender, EventArgs e)

{

FileSvr fileSvr = new FileSvr();

System.Data.DataTable dt = fileSvr.GetExcelDatatable("C:UsersNewSpringDesktopDemoInExcelOutExcelInExcelOutExcelexcelExcelToDB.xlsx", "mapTable");

fileSvr.InsetData(dt);

}

}

class FileSvr

{

/// <summary>

/// Excel数据导入Datable

/// </summary>

/// <param name="fileUrl"></param>

/// <param name="table"></param>

/// <returns></returns>

public System.Data.DataTable GetExcelDatatable(string fileUrl, string table)

{

//office2007之前 仅支持.xls

//const string cmdText = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Excel 8.0;IMEX=1';";

//支持.xls和.xlsx,即包括office2010等版本的HDR=Yes代表第一行是标题,不是数据;

const string cmdText = "Provider=Microsoft.Ace.OleDb.12.0;Data Source={0};Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'";

System.Data.DataTable dt = null;

//建立连接

OleDbConnection conn = new OleDbConnection(string.Format(cmdText, fileUrl));

try

{

//打开连接

if (conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed)

{

conn.Open();

}

System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

//获取Excel的第一个Sheet名称

string sheetName = schemaTable.Rows[0]["TABLE_NAME"].ToString().Trim();

//查询sheet中的数据

string strSql = "select * from [" + sheetName + "]";

OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);

DataSet ds = new DataSet();

da.Fill(ds, table);

dt = ds.Tables[0];

return dt;

}

catch (Exception exc)

{

throw exc;

}

finally

{

conn.Close();

conn.Dispose();

}

}

/// <summary>

/// 从System.Data.DataTable导入数据到数据库

/// </summary>

/// <param name="dt"></param>

/// <returns></returns>

public int InsetData(System.Data.DataTable dt)

{

int i = 0;

string lng = "";

string lat = "";

string offsetLNG = "";

string offsetLAT = "";

foreach (DataRow dr in dt.Rows)

{

lng = dr["LNG"].ToString().Trim();

lat = dr["LAT"].ToString().Trim();

offsetLNG = dr["OFFSET_LNG"].ToString().Trim();

offsetLAT = dr["OFFSET_LAT"].ToString().Trim();

//sw = string.IsNullOrEmpty(sw) ? "null" : sw;

//kr = string.IsNullOrEmpty(kr) ? "null" : kr;

string strSql = string.Format("Insert into DBToExcel (LNG,LAT,OFFSET_LNG,OFFSET_LAT) Values ('{0}','{1}',{2},{3})", lng, lat, offsetLNG, offsetLAT);

string strConnection = ConfigurationManager.ConnectionStrings["ConnectionStr"].ToString();

SqlConnection sqlConnection = new SqlConnection(strConnection);

try

{

// SqlConnection sqlConnection = new SqlConnection(strConnection);

sqlConnection.Open();

SqlCommand sqlCmd = new SqlCommand();

sqlCmd.CommandText = strSql;

sqlCmd.Connection = sqlConnection;

SqlDataReader sqlDataReader = sqlCmd.ExecuteReader();

i++;

sqlDataReader.Close();

}

catch (Exception ex)

{

throw ex;

}

finally

{

sqlConnection.Close();

}

//if (opdb.ExcSQL(strSql))

//i++;

}

return i;

}

}

}

运行结果:

赞助本站

人工智能实验室

相关热词: Excel 数据导入 c

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港