手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >c#将Excel数据导入到数据库的实现代码
c#将Excel数据导入到数据库的实现代码
摘要:假如Excel中的数据如下:数据库建表如下:其中Id为自增字段:代码:复制代码代码如下:usingSystem;usingSystem.Co...

假如Excel中的数据如下:

c#将Excel数据导入到数据库的实现代码1

数据库建表如下:

c#将Excel数据导入到数据库的实现代码2

其中Id为自增字段:

c#将Excel数据导入到数据库的实现代码3

代码:

复制代码 代码如下:

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;

}

}

}

运行结果:

c#将Excel数据导入到数据库的实现代码4

【c#将Excel数据导入到数据库的实现代码】相关文章:

asp.net 操作excel的实现代码

asp.net Xml绑定到数据控件的具体实现

.Net连接Oracle数据库的实现代码

ASP.NET技巧:数据岛出到Excel最为简易的方法

c#将Excel数据导入到数据库的实现代码

asp.net 文章内容分页显示的代码

.NET(C#)连接各类数据库代码-集锦

ASP.NET2.0中数据源控件之异步数据访问

asp.net Linq把数据导出到Excel的代码

ASP.Net 图片存入数据库的实现代码

精品推荐
分类导航