关闭

从EXCEL导入数据到SQL SERVER

标签: excelsql serverdatasettableinsertstring
4883人阅读 评论(4) 收藏 举报
分类:

EXCEL导入数据到SQL SERVER

左直拳

介绍两种途径将数据从EXCEL中导入到SQL SERVER

一、        在程序中,用ADO.NET。代码如下:

 

//连接串

string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" + [EXCEL文件,含路径] + ";";

OleDbConnection conn = new OleDbConnection(strConn);

conn.Open();

         

DataTable dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[] {null, null, null, "TABLE"});

DataSet ds = new DataSet();

//一个EXCEL文件可能有多个工作表,遍历之

foreach( DataRow dr in dtSchema.Rows )

{

   string table = dr["TABLE_NAME"].ToString();

   string strExcel = "SELECT * FROM [" + table + "]";

   ds.Tables.Add(table);

 

   OleDbDataAdapter myCommand = new OleDbDataAdapter(strExcel,conn);

   myCommand.Fill(ds,table);

}

 

conn.Close();

 

这样,读取出来的数据就藏在DataSet里了。

采用这种方式,数据库所在机器不必装有EXCEL

 

二、        在查询分析器里,直接写SQL语句:

如果是导入数据到现有表,则采用

INSERT INTO SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:/test.xls',sheet1$)

的形式

如果是导入数据并新增表,则采用

SELECT * INTO FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:/test.xls',sheet1$)

的形式。

 

以上语句是将EXCEL文件里SHEET1工作表中所有的列都读进来,如果只想导部分列,可以

INSERT INTO (a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:/test.xls',sheet1$)

 

其实可以将OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:/test.xls',sheet1$)当成一个表,例如我就写过这样一个句子:

 

INSERT INTO eval_channel_employee(channel,employee_id)

SELECT CASE a.渠道 WHEN 'DIY' THEN 1 WHEN 'RDC' THEN 0 WHEN 'KCM' THEN 2 ELSE 3 END

,b.id FROM

OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:/temp/name.xls',sheet1$) AS a,pers_employee b

WHERE a.员工编码=b.code

 

不管是哪种方式,哪种途径,系统都会默认将第一行上的内容作为字段名。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

常见excel导入到SQL Server 问题解决方案

错误信息:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。 解决办法: 去http://download.microsoft.com/download/7/0/3/...
  • ycl295644
  • ycl295644
  • 2015-06-18 08:41
  • 2959

把EXCEL数据导入到SQL SERVER数据库中

方法一。。 直接看操作步骤 在数据库上点击右键,然后选择“任务”,选择“导入数据”,我们就看到弹出淡入数据的对话框 Excel 上面的字段命名最好跟要导入到最终的那个表的字段相同。假设终表为...
  • baicp3
  • baicp3
  • 2015-05-04 15:30
  • 1657

从Excel文件中导入数据到SQL Server 2012

1.启动SQL Server Management Studio 连接服务器后,选择数据库中需要导入数据的数据库,右键点击,选择任务,导入数据 Server 2012" alt="从Excel文...
  • guoqingshuang
  • guoqingshuang
  • 2016-05-19 15:37
  • 2493

Excel数据导入SQL Server 辅助工具

  • 2007-12-10 08:14
  • 109KB
  • 下载

将Excel数据导入到SQL Server数据库中的方法

  • 2012-01-29 15:43
  • 28KB
  • 下载

SQL Server 2016 多种导入EXCEL 2013表数据的方法

  • 2017-09-21 12:53
  • 2.27MB
  • 下载

asp.net 操作Excel表数据导入到SQL Server数据库

代码全部贴出,主要是Excel表中的数据要和数据库中的数据类型要匹配。 这里Excel表中的字段是: 姓名、性别、班级、学号、初始密码 SQL Server表tb_Users中的字段是;...
  • taomanman
  • taomanman
  • 2011-11-18 17:00
  • 10931

关于如何将Excel数据导入到SQL Server中

面对大量的Excel数据我们可能会非常苦恼,如果一条一条的插入到数据库;不仅会耗大量的时间,而且还可能会发生错误,现在我来说一下如何导入数据! 1、准备工作   首先要在Excel中建立数...
  • u013240005
  • u013240005
  • 2014-11-04 18:02
  • 261

如何将数据从 Excel 导入到 SQL Server

本文内容 概要 技术说明 要求 示例 导入与追加 使用 DTS 或 SSIS 使用链接服务器 使用分布式查询 使用...
  • xcntime
  • xcntime
  • 2014-06-13 08:42
  • 806

Excel数据导入Sql Server出现Null

关于这个问题,我是excel导入已存在表里发现的, 提示违反约束限制51什么的,后来导入新建表发现原来主键列里很多值都是null; 其原因为: SQLServer过程中,SQLServer会做出判...
  • liu122577479
  • liu122577479
  • 2017-07-17 12:48
  • 176
    个人资料
    • 访问:2456197次
    • 积分:33406
    • 等级:
    • 排名:第161名
    • 原创:910篇
    • 转载:0篇
    • 译文:0篇
    • 评论:626条
    文章分类
    最新评论