c# excel导入mysql_c#将Excel数据导入到数据库的实现代码(转载)

该博客展示了如何使用C#将Excel文件中的数据导入到MySQL数据库中。通过创建DataTable,使用OleDbConnection和OleDbDataAdapter读取Excel文件,然后通过SqlConnection和SqlCommand将数据插入到数据库中。
摘要由CSDN通过智能技术生成

假如Excel中的数据如下:

22f5a6c5dbf802e663a3ba97d4b6b7c3.png

数据库建表如下:

dc40bd63813fa02e5235b365095aad0f.png

其中Id为自增字段:

f80472babf6cc4a1ddee5968d98a51d2.png

代码如下:

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

{

///

/// Excel数据导入Datable

///

///

///

///

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();

}

}

///

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

///

///

///

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;

}

}

}

运行结果:

bbbe60a04f318eff13f322c6af2d79ec.png

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

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

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

sing System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web ...

将Excel数据导入mysql数据库的几种方法

将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面 ...

利用TOAD实现把EXCEL数据导入oracle数据库

利用TOAD实现把EXCEL数据导入oracle数据库 工具:   Toad11.7z(百度搜索,直接下载) 1.将Excel文件中某些字段导入到Oracle数据库的对应表 连接想要导入的数据库 ,然 ...

java实现EXCEL数据导入到数据库中的格式问题的解决

之前作为项目甲方,加之java接触不多,在java web开发方面都是打下手的份. 对于EXCEL数据导入到数据库这个问题一直老是出现格式原因而导入失败也是未免惆怅,开发团队也是只说回去检查一下格式. ...

NOPI Excel 数据导入到数据库

/// /// 上传excel文件 并将文件数据导入到数据库 /// ///

Android开发-API指南-Android简介

Introduction to Android 英文原文:http://developer.android.com/intl/zh-cn/guide/index.html 采集日期:2014-4-16 ...

2876: [Noi2012]骑行川藏 - BZOJ

Description 蛋蛋非常热衷于挑战自我,今年暑假他准备沿川藏线骑着自行车从成都前往拉萨.川藏线的沿途有着非常美丽的风景,但在这一路上也有着很多的艰难险阻,路况变化多端,而蛋蛋的体力十分有限,因 ...

[国嵌攻略][068][tftp网络协议实现]

IP协议结构 UDP协议结构 TFTP协议结构 TFTP端口 读写请求端口: 69 其他请求端口:1024~65535 主程序 /*********************************** ...

Shell标准输出、标准错误

shell中可能经常能看到:>/dev/null 2>&1 eg:sudo kill -9 ps -elf |grep -v grep|grep $1|awk '{print $4 ...

Python Mysql_db对数据查询进行处理

引用自:https://www.cnblogs.com/itdyb/p/5700614.html 一.脚本如下 #!/usr/bin/python2.7# coding=utf-8import tim ...

cyclone IV中DDR的一个疑惑

的生成的DDR2 IP中DDR的时钟竟然是双向的,而在arria10中生成的DDR4则是输出,而DDR2的datasheet上也指出ck和ck#是输入,不知为什么? inout mem_clk , i ...

Learn X in Y minutes Where X=c++

http://learnxinyminutes.com/docs/c++/ C++ is a systems programming language that, according to its i ...

TransportClient操作详解

Elasticsearch JAVA操作有三种客户端: 1.TransportClient 2.JestClient 3.RestClient 还有种是2.3中有的NodeClient,在5.5.1中 ...

以下是将 Excel 数据导入MySQL 数据库C# 代码示例: ```csharp private void btnImport_Click(object sender, EventArgs e) { // 获取 Excel 文件路径 string filePath = txtFilePath.Text; // 连接 Excel 文件 string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1;'"; OleDbConnection conn = new OleDbConnection(connStr); try { conn.Open(); OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", conn); OleDbDataAdapter adapter = new OleDbDataAdapter(cmd); // 将 Excel 数据读入 DataSet DataSet ds = new DataSet(); adapter.Fill(ds); // 连接 MySQL 数据库 string mysqlConnStr = "Server=127.0.0.1;Database=test;Uid=root;Pwd=123456;"; MySqlConnection mysqlConn = new MySqlConnection(mysqlConnStr); mysqlConn.Open(); // 插入数据MySQL 数据库 foreach (DataRow row in ds.Tables[0].Rows) { MySqlCommand mysqlCmd = new MySqlCommand(); mysqlCmd.Connection = mysqlConn; mysqlCmd.CommandText = "INSERT INTO `test`.`table1` (`Column1`, `Column2`, `Column3`) VALUES (@Column1, @Column2, @Column3)"; mysqlCmd.Parameters.AddWithValue("@Column1", row["Column1"]); mysqlCmd.Parameters.AddWithValue("@Column2", row["Column2"]); mysqlCmd.Parameters.AddWithValue("@Column3", row["Column3"]); mysqlCmd.ExecuteNonQuery(); } MessageBox.Show("导入成功!"); } catch (Exception ex) { MessageBox.Show("导入失败:" + ex.Message); } finally { conn.Close(); mysqlConn.Close(); } } ``` 需要注意的是,该示例代码使用了 `OleDbConnection` 和 `OleDbDataAdapter` 来连接 Excel 文件和读取数据,使用了 `MySqlConnection` 和 `MySqlCommand` 来连接 MySQL 数据库和插入数据。在使用前需要引入 `System.Data.OleDb` 和 `MySql.Data.MySqlClient` 命名空间,并且需要先安装 `MySql.Data` NuGet 包。另外,代码中的数据库连接字符串、Excel 表名、表字段名等需要根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值