订餐系统总结(二)sqlserver 与excel

  想通过这篇文章描述一下从sqlserver导入数据到excel和从excel导出数据到sqlserver的几种方法。

一、通过SQL语句直接导入到数据库

       数据的导入与导出是每个系统基本都具有的功能,在开始的时候,自己想的是把用户的信息从数据库中直接导入到sqlserver数据库,于是,沿着这个思路也就有了第一种方法:

首先要执行语句:

如果不执行上述语句,会报错,自己可以试下!(在sql2005的外围配置管理器里也可以设置)

然后执行如下语句(excel为excel97-03)便可以查询出excel中的数据,我查的是excel工作薄中的teacherInfo工作表


显示结果如下:

说明:1、提供程序版本:必须使用 Jet 4.0 提供程序;Jet 3.51 提供程序不支持 Jet ISAM 驱动程序

                       2、Excel 版本:对于 Excel 95 工作簿(Excel 版本 7.0),应指定 Excel 5.0;对于 Excel 97、Excel 2000 或 Excel 2002 (XP) 工作簿(Excel 版本 8.0、9.0 和 10.0),应指定 Excel 8.0 版本。

         

          二、其实我原来是这样想的,后来通过和艳梅师姐讨论,说这是不可以的。对信息的导入不能通过直接对数据库进行操作,因为如果系统交付用户使用后,用户是不会操作数据库的,所以应该在系统的后台通过代码来实现用户信息的导入。

系统采用了三层架构,代码实现如下:

1、界面层,导入按钮:


2、B层的主要方法


   3、在D层采用了抽象工厂加反射,所以直接给出DAL层的接口实现:

下面是SQLHelper中的对应的方法:

说明:列标题:默认情况下,系统认为 Excel 数据源的第一行包含可用作字段名的列标题。如果不是这种情况,则必须将该设置关闭,否则,第一行数据将会“消失”,而被用作字段名称。这可通过向连接字符串的扩展属性添加可选的 HDR= 设置来完成。默认情况下(无需指定)是 HDR=Yes。如果没有列标题,则需要指定 HDR=No;提供程序将字段命名为 F1、F2 等等

          2、关于IMEX的值,可以参考:http://support.microsoft.com/kb/194124

http://www.cnblogs.com/xingyukun/archive/2007/04/30/733461.html


样就实现excel的完美导入!


三、sqlserver导出到excel

可以直接通过DTS(data transformation service)导出和导入excel数据到sqlserver。因为都是图形化的界面,在此不再赘述了。

四、在系统里面有一个需求就是要把数据,导出到excel,现在给出从dataTable把数据导出到excel的实现:


说明:对于有的字符串是0开头的话,excel会自动把前面的0去掉,于是在导出的时候加了一个方法,就是在前面加一个单引号。(我的表第一列就是这种情况)。


到此,关于sqlserver与excel的几种导入与导出关系都介绍完毕了,其实还有好东西要了解和掌握的,如果想深刻地理解,最好还是参考MSDN的帮助。

猛击此处:http://support.microsoft.com/kb/257819


         


posted on 2012-06-10 10:33  c语言源码  阅读(210)  评论(0编辑  收藏  举报

导航