net以execl做数据库_C#.NET Excel文件数据导入SQL Server数据库完整代码
展开全部
在日常的项目中,Excel,Word,txt等格式的数62616964757a686964616fe58685e5aeb931333337626235据导入到数据库中是很常见
这里将分为.net导入Sql Server,Oracle数据库和WinForm导入Sql Server,Oracle数据库。
实现的基本思想:
1,先使用FileUpload控件fuload将Excel文件上传到服务器上得某一个文件夹。
2,使用OleDb将已经上传到服务器上的Excel文件读出来,这里将Excel文件当做一个数据库来读。在联系数据库语句中,Data Source就是该文件在服务器上得物理路径
3,将第二步中读出的数据以DataTable对象返回。
4,遍历DataTable对象,然后到Sql Server数据库中查询,是否存在该条数据。如果存在,可以做更新,或者不做处理;如果不存在,则插入数据。
注意:在遍历DataTable的时候,可是使用dt.Rows[i]["Name"].ToString();Name为Name列的表头,所以Excel中列的顺序就无关紧要了。当然,前提是你知道Excel里列中各表头的名字。如果Excel中列的顺序固定,即可按下面代码中的方式进行。
添加的引用:
using System;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.IO;
using System.Text;
using System.Web;
using System.Web.UI;
private DataTable xsldata()
{
if(fuload.FileName == "")
{
lbmsg.Text = "请选择文件";
return null;
}
string fileExtenSion;
fileExtenSion = Path.GetExtension(fuload.FileName);
if(fileExtenSion.ToLower() != ".xls" && fileExtenSion.ToLower() != ".xlsx")
{
lbmsg.Text = "上传的文件格式不正确";
return null;
}
try
{
string FileName = "App_Data/" + Path.GetFileName(fuload.FileName);
if(File.Exists(Server.MapPath(FileName)))
{
File.Delete(Server.MapPath(FileName));
}
fuload.SaveAs(Server.MapPath(FileName));
//HDR=Yes,这代表第一行是标题,不做为数据使用 ,如果用HDR=NO,则表示第一行不是标题,做为数据来使用。系统默认的是YES
string connstr2003 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(FileName) + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
string connstr2007 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath(FileName) + ";Extended Properties=\"Excel 12.0;HDR=YES\"";
OleDbConnection conn;
if(fileExtenSion.ToLower() == ".xls")
{
conn = new OleDbConnection(connstr2003);
}
else
{
conn = new OleDbConnection(connstr2007);
}
conn.Open();
string sql = "select * from [Sheet1$]";
OleDbCommand cmd = new OleDbCommand(sql, conn);
DataTable dt = new DataTable();
OleDbDataReader sdr = cmd.ExecuteReader();
dt.Load(sdr);
sdr.Close();
conn.Close();
//删除服务器里上传的文件
if(File.Exists(Server.MapPath(FileName)))
{
File.Delete(Server.MapPath(FileName));
}
return dt;
}
catch(Exception e)
{
return null;
}
}
protected void Btn_Export_Excel_To_DB_Click(object sender, EventArgs e)
{
try{
DataTable dt = xsldata();
//dataGridView2.DataSource = ds.Tables[0];
int errorcount = 0;//记录错误信息条数
int insertcount = 0;//记录插入成功条数
int updatecount = 0;//记录更新信息条数
string strcon = "server=localhost;database=database1;uid=sa;pwd=sa";
SqlConnection conn = new SqlConnection(strcon);//链接数据库
conn.Open();
for(int i = 0; i
{
string Name = dt.Rows[i][0].ToString();//dt.Rows[i]["Name"].ToString(); "Name"即为Excel中Name列的表头
string Sex = dt.Rows[i][1].ToString();
int Age = Convert.ToInt32(dt.Rows[i][2].ToString());
string Address = dt.Rows[i][3].ToString();
if(Name != "" && Sex != "" && Age != 0 && Address != "")
{
SqlCommand selectcmd = new SqlCommand("select count(*) from users where Name='" + Name + "' and Sex='" + Sex + "' and Age='" + Age + "' and Address=" + Address, conn);
int count = Convert.ToInt32(selectcmd.ExecuteScalar());
if(count > 0)
{
updatecount++;
}
else
{
SqlCommand insertcmd = new SqlCommand("insert into users(Name,Sex,Age,Address) values('" + Name + "','" + Sex + "'," + Age + ",'" + Address + "')", conn);
insertcmd.ExecuteNonQuery();
insertcount++;
}
}
else
{
errorcount++;
}
}
Response.Write((insertcount + "条数据导入成功!" + updatecount + "条数据重复!" + errorcount + "条数据部分信息为空没有导入!"));
}
catch(Exception ex)
{
}
}
net以execl做数据库_C#.NET Excel文件数据导入SQL Server数据库完整代码相关推荐
- 不用代码快速将Excel的数据导入SQL Server数据库中
主要通过SQL Server的导入功能 直接写流程 1.首先获取一份符合格式的Excel表(能导入数据库Excel的格式是97-2003) 字段名就是你要导入数据库表的字段名(导入后这个表只作为临时表 ...
- 使用SSIS包将多个Excel文件中的数据导入SQL Server表中
This article explores an SSIS package for importing multiple Excel files data into SQL Server tables ...
- 将Excel数据导入SQL Server数据库
遇到了一个需求,需要将Excel中的数据导入SQL Server数据库中,当然,不是使用企业管理器之类的直接导入数据的那种,而是要做到程序中.本来我最初的考虑是将Excel中的数据读到dataset中 ...
- python怎么导入sql数据库,##使用python将excel表中数据导入sql server数据库
如何用python将excel数据导入到postgresql数据库中 把excel表格另存为csv文件 python将exce文件含有多个sheet同时l导入sqlserver数据库 需要使用xlrd ...
- Excel文件数据导入到MySQL数据库
这里以Navicat客户端工具为例,当然版本也有关系这里我用的是16. 1.把Excel文件数据第一行改成对应的数据库字段 2.右键目标表-->导入向导-->选择excel文件格式 3.注 ...
- 极限挑战—C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码)
实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方法所耗费的时间. 本实验中所用到工具为VS2008和SQL SERVER 2000.S ...
- net以execl做数据库_将Excel直接当作数据库使用,ASP.NET三层架构
[实例简介] Excel做为数据库登录的三层实现 一个简单的登录验证程序源码,数据库采用的是Excel,利用简单三层实现 DB/users.xls为Excel文件 [实例截图] [核心代码] usin ...
- excel文件数据导入mysql数据库中_将excel里面的数据导入mysql数据库中
展开全部 条件:PC端已经安装Navicat工具,并636f70793231313335323631343130323136353331333363386161且已经成功连接至数据库. 1.点击鼠标右 ...
- exls导入数据库 php_PHP读取excel文件并导入数据库
PHPExcel是一个PHP类库,用来帮助我们简单.高效实现从Excel读取Excel的数据和导出数据到Excel.下面是PHPExcel读取的使用教程: 1.首先下载PHPExcel 2.下载好文件 ...
最新文章
- Matlab与线性代数 -- 零矩阵
- 第11章 假如没有编程 《丰富多彩的编程世界》
- 少儿编程:玩游戏不如设计游戏!
- iNeuOS工业互联网,增加一批PLC、核工业、数字模块、传感器等设备驱动
- 王道408数据结构——第四章 串(KMP算法)
- mysql权限create细化_mysql权限精细化分配-阿里云开发者社区
- javascript实现页面中回到顶部功能
- vscode插件推荐
- 游戏设计的艺术pdf
- 《网管员世界》征稿启事
- 漏洞扫描工具AppScan下载网盘
- IPSAN 配置过程
- php网站的index.php文件打开空白,其他html和php都能打开的问题所在
- LinkedIn前副总裁Brian Frank:三十亿美金销售缔造者的领导力思考
- Windows 10 2018年四月更新版官方正式版
- SamSung WLAN AP:RCE漏洞复现
- WindTerm:新一代开源免费的终端工具,GitHub星标6.6k+,太酷了
- unity3d占用内存太大解决方法
- Python实现计算机的自动化控制!
- long + ulong_ULONG_MAX常数,带C ++示例