首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 
设为首页
加入收藏
联系我们
热门关键字: .net应用  操作系统  Dreamweaver  WinRAR  网络推广
高级搜索
您当前的位置: 主页>数据库>SQL数据库>实现Excel数据导入到SQL2005中的方法
实现Excel数据导入到SQL2005中的方法
来源: 发布时间:2008-01-03 发布人: 浏览: 人次   字体: [ ]  

前段时间由于工作需要,设计了一个基于InfoPath+SQL的查询系统,设计完成后,突然发现查询系统所需要的原始数据都是存放在Excel文档,如果将每条记录重新输入到SQL中,那过程将非常繁琐,通过在网络查询得到二种方法,但过程还是不太方便。现将以下几种方法汇总以下:

一、        在程序中,用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
 
不管是哪种方式,哪种途径,系统都会默认将第一行上的内容作为字段名。
这二种方式虽然非常好,但操作过程不太方便,经过测试发现在SQL2005中直接可以实现导入功能。操作过程如下:
第一步:登录到SQL Server Management Studio,
第二步:在“对象资源管理器”中右键单击“管理”,在弹出列表中单击“导入数据”
第三步:在“导入向导”对话框中单击“下一步”,进入到“选择数据源”对话框,在“数据源”列表中选择“Microsoft Excel ”,同时选择相应的Excel 文档,完成后单击“下一步”(一定要勾选该对话框中的“首行包含列名称”,因此它是将Excel文档中的列标题为数据库表中的列项标题)
第四步:指定目标数据库服务,依次单击“下一步”。。。。至到“完成”
第五步:重新打到SQL Server Management Studio,进入到导入的数据库表,可以发现所导入的Excel文档数据。

相 关 文 章   发布商链接
·sql实现小写金额转换成大写代码
·实现sql Server数据库自动网络备份的...
·正确配置和使用SQL mail收发和自动处...
·SQL语句实现其它进制转换成十进制代...
·sql删除数据库中重复数据的两个方法
·随机查找一条记录的SQL语句代码
·Sql Server中Update新用法案例心得
·SQL SERVER实用经验技巧集合大放送
·sql语句联合删除多个表技巧
·实现sql server数据库的自动备份功能
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·sql语句获得数据库某表字段的
·ISNUMERIC函数介绍及其要注意
·SQLServer2005导入xml文件实...
·SQL Server2005中删除表中重...
·如何手工启动SQLServer的全文
·sql删除数据库中的所有表语句
·SqlServr利用触发器来控制某...
·SQLServer常用日期格式转换方
·用sql实现查询重复记录的代码
·SQLServer2005分解导入xml文...
·sql server存储过程实例:统...
·在SQL中分类合并多行记录的方
·SQL Server如何返回最后插入...
·MS SQL2005无法远程连接问题...
·MS sql安装时“无法在COM+目...
热 门 文 章
·sql语句联合删除多个表技巧
·如何在SQL Server中得到自动...
·MS sql安装时“无法在COM+目...
·Sql中获取不同格式的日期设置...
·Sql Server端口连接的问题
·如何修改sqlserver数据库名称
·分析SQL2005最新高效分页方法
·sql2005判断字符出现次数代码
·10个新技巧之SQL进行排序 分...
·MS SQL2005无法远程连接问题...
·SQL SERVER实用经验技巧集合...
·SQLServer常用日期格式转换方...
·Sql Server中Update新用法案...
·正确配置和使用SQL mail收发...
·sql删除数据库中重复数据的两...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .