关于EXCEL数据上传到SQL SERVER中的简单方法!
2007-05-15 14:54
399 查看
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语句(都是参数的形式)可以解决这个问题,呵呵 大家无妨去参考一下!
【处理这类问题,重点的不是上传和实现技术,而是错误处理,任何失误都会导致数据遭到XX呵呵】
新人都加油!
注意点一:要把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语句(都是参数的形式)可以解决这个问题,呵呵 大家无妨去参考一下!
【处理这类问题,重点的不是上传和实现技术,而是错误处理,任何失误都会导致数据遭到XX呵呵】
新人都加油!
相关文章推荐
- 关于EXCEL数据上传到SQL SERVER中的简单方法!
- EXCEL数据上传到SQL SERVER中的简单实现方法
- EXCEL数据上传到SQL SERVER中的简单实现方法
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- VB6数据导出到Excel文件,一种设计界面查询条件的方法,一种简单加密方法(改写)
- 最简单删除SQL Server中所有数据的方法(不用考虑表之间的约束条件,即主表与子表的关系)
- SQL SERVER使用OpenRowset,、OpenDataSource函数导入、导出数据到Excel 的几种方法(整理)
- SQL SERVER 与ACCESS、EXCEL的数据转换方法分享
- 将repeater、datalist、gridview中的数据导出到Excel中的简单方法
- 关于sql server的一种简单用法——在上面写查询语句,即可在下面修改数据
- 【转】SQL Server数据表在编程中实现导出EXCEL的几种方法
- php把数据表导出为Excel表的最简单、最快的方法(不用插件)
- SQL Server中从Excel中读取数据的方法
- EXCEL数据上传到SQL SERVER
- php把数据表导出为Excel表的最简单、最快的方法(不用插件)
- 关于大批量数据上传和更新的方法
- SQL Server数据表在编程中实现导出EXCEL的几种方法
- SQL SERVER 与ACCESS、EXCEL的数据转换方法分享
- winform中 将listview的数据导出至 excel (最简单的方法)
- SQL SERVER使用OpenRowset,、OpenDataSource函数导入、导出数据到Excel 的几种方法(整理)