EXCEL数据上传到SQL SERVER中的简单实现方法
程序员文章站
2024-03-31 11:46:52
excel数据上传到sql server中的方法需要注意到三点!注意点一:要把excel数据上传到sql server中必须提前把excel传到服务器上.做法: 在asp....
excel数据上传到sql server中的方法需要注意到三点!
注意点一:要把excel数据上传到sql server中必须提前把excel传到服务器上.
做法: 在asp.net环境中,添加一个fileupload上传控件
后台代码的e.x:
if (fileupload1.hasfile) //如果用户确实选择了上传控件的浏览按钮,浏览文件成功.
{
this.fileupload1.saveas("e:\\temp\\" + fileupload1.filename); //保存到服务器的目录,需要根据服务器具体情况修改fileupload1.filename会自动获取上传文件名.
}
//ok成功上传到服务器的e:\temp目录下(自己写的时候注意错误处理,和异常处理啊,很重要的).
注意点二: sql server 服务器中的表的结构(字段)要与要上传来的excel格式顺序等相同.
保存到服务器的关键代码如下e.x(sql 语句):
insert into employeescheck select * from openrowset('microsoft.jet.oledb.4.0' ,'excel 8.0;hdr=yes;database=e:\\temp\\" + fileupload1.filename + "',teenie$)
// employeescheck 是我在sql server 中的数据接受表,hdr=yes 表示excel内容第一行作为内容字段而不是字段列
teenie是我excel的当前页的名称(注意这个一定要写对,否则的话会出错,另外要在名字后面家$这个东西)
解除sql阻止:
sql server 阻止了对组件 'ad hoc distributed queries' 的 statement'openrowset/opendatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'ad hoc distributed queries'。有关启用 'ad hoc distributed queries' 的详细信息,请参阅 sql server 联机丛书中的 "外围应用配置器"。
因为sql2005默认是没有开启'ad hoc distributed queries' 组件,开启方法如下
exec sp_configure 'show advanced options', 1
go
reconfigure
go
exec sp_configure 'ad hoc distributed queries', 1
go
reconfigure
go
哈哈!就说到这些把 这个比较简单 能对付一般的应用了,因为一般用excel数据的都是公司内部数据处理,所以完全够应付了,但是如果是商业化或者专业的网站让任何普通用户上传excel的话就不大合适了,毕竟你不能强烈要求所有用户excel的表的数据页的名字都叫teenie 呵呵,网上还有一种很麻烦的sql语句(都是参数的形式)可以解决这个问题,呵呵 大家无妨去参考一下!
注意点一:要把excel数据上传到sql server中必须提前把excel传到服务器上.
做法: 在asp.net环境中,添加一个fileupload上传控件
后台代码的e.x:
复制代码 代码如下:
if (fileupload1.hasfile) //如果用户确实选择了上传控件的浏览按钮,浏览文件成功.
{
this.fileupload1.saveas("e:\\temp\\" + fileupload1.filename); //保存到服务器的目录,需要根据服务器具体情况修改fileupload1.filename会自动获取上传文件名.
}
//ok成功上传到服务器的e:\temp目录下(自己写的时候注意错误处理,和异常处理啊,很重要的).
注意点二: sql server 服务器中的表的结构(字段)要与要上传来的excel格式顺序等相同.
保存到服务器的关键代码如下e.x(sql 语句):
复制代码 代码如下:
insert into employeescheck select * from openrowset('microsoft.jet.oledb.4.0' ,'excel 8.0;hdr=yes;database=e:\\temp\\" + fileupload1.filename + "',teenie$)
// employeescheck 是我在sql server 中的数据接受表,hdr=yes 表示excel内容第一行作为内容字段而不是字段列
teenie是我excel的当前页的名称(注意这个一定要写对,否则的话会出错,另外要在名字后面家$这个东西)
解除sql阻止:
sql server 阻止了对组件 'ad hoc distributed queries' 的 statement'openrowset/opendatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'ad hoc distributed queries'。有关启用 'ad hoc distributed queries' 的详细信息,请参阅 sql server 联机丛书中的 "外围应用配置器"。
因为sql2005默认是没有开启'ad hoc distributed queries' 组件,开启方法如下
复制代码 代码如下:
exec sp_configure 'show advanced options', 1
go
reconfigure
go
exec sp_configure 'ad hoc distributed queries', 1
go
reconfigure
go
哈哈!就说到这些把 这个比较简单 能对付一般的应用了,因为一般用excel数据的都是公司内部数据处理,所以完全够应付了,但是如果是商业化或者专业的网站让任何普通用户上传excel的话就不大合适了,毕竟你不能强烈要求所有用户excel的表的数据页的名字都叫teenie 呵呵,网上还有一种很麻烦的sql语句(都是参数的形式)可以解决这个问题,呵呵 大家无妨去参考一下!
推荐阅读
-
Asp.net中把Excel数据存储至SQL Server中的具体实现方法
-
Asp.net中把Excel数据存储至SQL Server中的具体实现方法
-
EXCEL数据上传到SQL SERVER中的简单实现方法
-
C#实现Excel表数据导入Sql Server数据库中的方法
-
sql server中通过查询分析器实现数据库的备份与恢复方法分享
-
C#实现Excel表数据导入Sql Server数据库中的方法
-
sql server中通过查询分析器实现数据库的备份与恢复方法分享
-
SQL Server存储过程在C#中调用的简单实现方法
-
EXCEL数据上传到SQL SERVER中的简单实现方法_MySQL
-
sql server中通过查询分析器实现数据库的备份与恢复方法分享