为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

数据库数据到Excel电子表格数据的转换论文

2017-09-15 50页 doc 441KB 163阅读

用户头像

is_196623

暂无简介

举报
数据库数据到Excel电子表格数据的转换论文数据库数据到Excel电子表格数据的转换论文 吉林大学计算机科学与技术学院2008年本科学位论文 关于关系数据库和Excel电子表格数据的相互转换国内外的 研究已经很多,例如某公司的开发的总店门店销售管理软件可以 实现如下功能: 适用于商业批发、零售企业、工业生产型企业。 对某种产品成本的核算、某项目的成本核算变得轻而易举.存货可以进行五级分类,让你能很方便地从仓库中调出你想要查找的商 品.自动的报表功能:采购汇总表、销售汇种表、销售利润表等等,自定义汇总模块,能让客户得到想要的任何数据,并且所有资料 可以完全导出到Exc...
数据库数据到Excel电子表格数据的转换论文
数据库数据到Excel电子#格#数据的转换论文 吉林大学计算机科学与技术学院2008年本科学位论文 关于关系数据库和Excel电子表格数据的相互转换国内外的 研究已经很多,例如某公司的开发的总店门店销售管理软件可以 实现如下功能: 适用于商业批发、零售企业、工业生产型企业。 对某种产品成本的核算、某项目的成本核算变得轻而易举.存货可以进行五级分类,让你能很方便地从仓库中调出你想要查找的商 品.自动的报表功能:采购汇总表、销售汇种表、销售利润表等等,自定义汇总模块,能让客户得到想要的任何数据,并且所有资料 可以完全导出到Excel. 关键词:Excel对象,ADO对象,SQL Server I 吉林大学计算机科学与技术学院2008年本科学位论文 Abstract On the relations between the database and Excel spreadsheet data conversion at home and abroad, has been a lot of research, such as the development of a company's headquarters store sales management software can achieve the following functions: apply to commercial wholesale, retail businesses, industrial production-oriented enterprises. The cost of a product accounting and a project costing become easy. Inventory can be five classifications, so that you can very easily from the warehouses you want to find out the merchandise. Automated reporting features: Summary of procurement And sales of the table, sales of a profit report, and so on, since the definition of aggregate module, allowing customers to receive any data, and all information can be fully exported to Excel. Key words: Excel object, ADO object, SQL Server II 吉林大学计算机科学与技术学院2008年本科学位论文 ......................................................................................................................... I ABSTRACT ..............................................................................................................II .................................................................................................................. - 1 - ........................................................................................................ - 1 - 1.1课题的研究意义和目的 ..............................................................................- 1 - 1.1.1指导思想与原则 ................................................................................. - 1 - 1.1.2实现目标与展望 ................................................................................. - 1 - .............................................................................. - 3 - 2.1 软硬件要求 ..................................................................................................- 3 - 2.1.1 Visual Studio 2005 集成开发环境 ....................................................... - 3 - 2.1.1.1 Visual Studio 2005 简介................................................................................. - 3 - 2.1.1.2 Visual Studio 2005 集成开发环境优势........................................................ - 6 - 2.1.2 Microsoft SQL Server 2000 ................................................................... - 7 - 2.1.3 Office 2003 ............................................................................................ - 8 - 2.2 开发工具与技术简介 ..................................................................................- 8 - 2.2.1 VB环境下连接SQL数据库 ................................................................ - 9 - 2.2.2 VB环境下与Excel电子表格的无缝连接........................................... - 9 - 2.2.2.1 VB读写EXCEL表 ........................................................................................ - 9 - 2.2.2.2 EXCEL的宏功能.......................................................................................... - 10 - 2.2.2..3 VB与EXCEL的相互勾通 ..................................................................... - 11 - 2.2.2.4连接举例 ........................................................................................................ - 11 - 2.2.3集成开发环境下的数据访问技术 ..................................................... - 15 - 2.3 数据转化系统的基本开发.................................................................- 18 - .................................................................... - 19 - 3.1数据转换系统层次结构(功能) .....................................................- 19 - 3.2 EXCEL对象介绍..........................................................................................- 19 - .................................................................. - 22 - 4.1 数据表的设计 ............................................................................................- 22 - 4.2 VB环境下与数据库的连接 .......................................................................- 22 - 4.3 利用ADO对象连接SQL SERVER2000数据库 .......................................- 28 - - 1 - 吉林大学计算机科学与技术学院2008年本科学位论文 4.4 次要功能的实现 ........................................................................................- 29 - ................................................................................ - 30 - 5.1 SQL数据库数据到EXCEL电子表格数据的转化(主要功能) .............- 30 - 5.2 次要功能的实现 ........................................................................................- 35 - ............................................................................................ - 39 - 6.1系统测试与维护 .........................................................................................- 39 - 6.1.1 SQL数据库数据源配置的测试 ......................................................... - 39 - 6.1.2 VB环境下连接数据库的测试 ........................................................... - 39 - 6.1.3 实现次要功能 .................................................................................... - 40 - 6.2软件性能评价 .............................................................................................- 40 - 6.3 结论与展望 ................................................................................................- 41 - .............................................................................................................. - 43 - ...................................................................................................................... - 44 - - 2 - 吉林大学计算机科学与技术学院2008年本科学位论文 Excel工作簿是我们日常工作中大量用到的桌面电子表格,而关系数据库是功能强大的后台数据库管理系统.在C/S、B/S体系结构的数据库应用中被广泛使用.该文从应用的角度介绍了 Excel电子表格和关系数据库表之间的相互转换.操作简便.技术实用.能大大提高实际工作效率。 数据库的数据转换成电子表格数据后,可以方便大多数对编程不 是很熟悉的工作人员进行操作。同时当对数据库数据的报表不是 有特殊要求的时候,也可以利用Excel所提供的报表打印功能, 可以减少程序的开发量。目的是要实现一个可以完成从指定数据 库数据转换到Excel电子表格数据的系统。 因为Excel电子表格的易操作性,现在在做数据统计的时候 被许多人用到。使用Excel表格进行数据统计,不要求使用者有 编程基础,简单易学。但是其也有不足的地方,比如做复杂的统 计计算的时候显得有些力不从心,而不需要编程同时也减少了灵 活性,用户无法对数据进行复杂的再处理。而关系数据库的数据 都存储在数据表中,用户可以通过编程对数据进行任何处理,但 这就对使用者有较高的要求。本课题希望通过实现Excel电子表格数据与关系数据库数据数据之间的相互转换,以便可以根据需 要来使用不同的工具来处理数据。同时因为很多企业以前的数据 都是用电子表格存储的,而现在的企业管理软件所使用的都是关 系数据库,如果能有工具可以方便的将电子表格数据转换成为关 系数据库数据,就会大大提高数据转换的效率。 要实现的主要功能: - 1 - 吉林大学计算机科学与技术学院2008年本科学位论文 关系数据库数据到Excel电子表格数据的转换;这里的关系数据 库可以是常用的数据库,如MS Acess, Oracle等,实现时实现到 一种数据的转换或者多个数据库的转换。Excel以97-03的xls格式为准,若可以同时实现到最新的xlsx数据的转换更佳。 次要功能: 从关系数据库到Excel时,应可以支持同个数据表数据到同 一个Excel中;支持一个或多个数据表中的部分或者全部字段数 据通过指定运算合并到一个Excel或多个Excel中;支持数据表 中满足条件的数据转入Excel中;其他功能可根据需要添加。 - 2 - 吉林大学计算机科学与技术学院2008年本科学位论文 2.1 本系统的主要功能是关系数据库数据到Excel电子表格数据 的相互转换,需要性能良好而且稳定的服务器。为了加快数据转 换的速度,服务器的配置要求高 2.1.1 Visual Studio 2005 2.1.1.1 Visual Studio 2005 Visual Studio .NET 是一套完整的开发工具,用于生成 ASP Web 应用程序、XML Web services、桌面应用程序和移动应用程 序。Visual Basic .NET、Visual C++ .NET、Visual C# .NET 和 Visual J# .NET 全都使用相同的集成开发环境 (IDE),该环境允许它们共享工具并有助于创建混合语言解决方案。另外,这些语 言利用了 .NET Framework 的功能,此框架提供对简化 ASP Web 应用程序和 XML Web services 开发的关键技术的访问。 Visual Studio .NET 的特色: 下面介绍一下 Visual Studio 版本中的一些最新工具和技 术的信息。 Visual J# : Visual J# 是一种开发工具,供熟悉 Java 语言语法的开发 人员在 .NET Framework 上生成应用程序和服务时使用。该工具 将 Java 语言语法集成到 Visual Studio .NET 集成开发环境 (IDE) 中。Visual J# 还支持 Visual J++ 6.0 中具有的大多数 功能,包括 Microsoft 扩展。Visual J# 不是一种用于开发在 Java 虚拟机上运行的应用程序的工具。使用 Visual J# 生成的应用程序和服务只在 .NET Framework 上运行。Visual J# 由 Microsoft 独立开发。它没有经过 Sun Microsystems, Inc. 的认可和批准。 - 3 - 吉林大学计算机科学与技术学院2008年本科学位论文 智能设备应用程序: Visual Studio .NET 集成开发环境现在包括开发智能设备 (如 Pocket PC)应用程序的工具。通过使用这些工具和 .NET Framework 精简版(.NET Framework 的子集),您可以在个人数 字助理 (PDA)、移动电话和其他资源受约束的设备中,创建、生 成、调试和部署在 .NET Framework 精简版上运行的应用程序。 ASP.NET 移动设计器: ASP.NET 移动设计器扩展了 ASP.NET 和 .NET Framework,可用来生成移动电话、PDA 和寻呼机的 Web 应用程序。此设计器 集成在 Visual Studio IDE 中。您可以创建移动 Web 应用程序,使用移动设计器修改移动 Web 窗体,然后生成和运行该应用程序 (所有这些操作都是在 Visual Studio 中完成的)。 Web 窗体: Web 窗体是用于创建可编程 Web 页的 ASP.NET 技术。Web 窗体将自己呈现为浏览器兼容的 HTML 和脚本,这使任何平台上 的任何浏览器都可以查看 Web 页。使用 Web 窗体,通过将控件 拖放到设计器上然后添加代码来创建 Web 页,与创建 Visual Basic 窗体的方法相似。 Windows 窗体: Windows 窗体是用于 Microsoft Windows 应用程序开发的、 基于 .NET Framework 的新平台。此框架提供一个有条理的、面 向对象的、可扩展的类集,使您能够开发功能丰富的 Windows 应用程序。另外,Windows 窗体可作为多层分布式解决方案中的本 地用户界面。 XML Web Services: XML Web services 是可以通过 HTTP 使用 XML 接收请求和数据的应用程序。XML Web services 不受特定组件技术或对象调 用约定的制约,因此可由任何语言、组件模型或操作系统访问。 在 Visual Studio .NET 中,可以使用 Visual Basic、Visual C#、JScript、C++ 的托管扩展或 ATL Server 快速创建和包含 XML Web services。 XML 支持 : 可扩展标记语言 (XML) 提供描述结构数据的方法。XML 是 - 4 - 吉林大学计算机科学与技术学院2008年本科学位论文 SGML 的子集,非常适合在 Web 上传送。万维网联合会 (W3C) 定义了 XML 以使结构化数据保持统一并独立于应用程序。 Visual Studio .NET 完全支持 XML,提供了 XML 设计器以使编辑 XML 和创建 XML 架构更容易。 .NET Framework : .NET Framework 是用于生成、部署和运行 XML Web services 和应用程序的多语言环境。它由三个主要部分组成: 公共语言运行库 : 运行库实际上在组件的运行时和开发时操作中都起到很大的 作用,尽管名称中没有体现这个意思。在组件运行时,运行库除 了负责满足此组件在其他组件上可能具有的依赖项外,还负责管 理内存分配、启动和停止线程和进程,以及强制执行安全策略。 在开发时,运行库的作用稍有变化;由于做了大量的自动处理工 作(如内存管理),运行库使开发人员的操作非常简单,尤其是与 今天的 COM 相比。特别是反射等功能显著减少了开发人员为将业 务逻辑转变为可重用组件而必须编写的代码量。 统一编程类 : 该框架为开发人员提供了统一的、面向对象的、分层的和可 扩展的类库集 (API)。目前,C++ 开发人员使用 Microsoft 基础类,而 Java 开发人员使用 Windows 基础类。框架统一了这些完 全不同的模型并且为 Visual Basic 和 JScript 程序员同样提供了对类库的访问。通过创建跨所有编程语言的公共 API 集,公共语言运行库使得跨语言继承、错误处理和调试成为可能。从 JScript 到 C++ 的所有编程语言具有对框架的相似访问,开发人 员可以自由选择它们要使用的语言。 ASP.NET: ASP.NET 建立在 .NET Framework 的编程类之上,它提供了 一个 Web 应用程序模型,并且包含使生成 ASP Web 应用程序变得简单的控件集和结构。ASP.NET 包含封装公共 HTML 用户界面元素(如文本框和下拉菜单)的控件集。但这些控件在 Web 服务器上运行,并以 HTML 的形式将它们的用户界面推送到浏览器。 在服务器上,这些控件公开一个面向对象的编程模型,为 Web 开发人员提供了面向对象的编程的丰富性。ASP.NET 还提供结构服务(如会话状态管理和进程回收),进一步减少了开发人员必须编 - 5 - 吉林大学计算机科学与技术学院2008年本科学位论文 写的代码量并提高了应用程序的可靠性。另外,ASP.NET 使用这些同样的概念使开发人员能够以服务的形式交付软件。使用 XML Web services 功能,ASP.NET 开发人员可以编写自己的业务逻辑 并使用 ASP.NET 结构通过 SOAP 交付该服务。 Visual Studio 2005 集成开发环境示例: 2.1.1.2 Visual Studio 2005 Visual Studio 2005 包含了一系列高效的、智能的开发工具, 不论是为开发初学者,还是为经验丰富的企业开发团队都提供了 很多全新的、强大的功能。 全方位的工具平台 不论您是一位编程初学者还是一个富有 经验的企业开发团队的一员,为您提供高效的开发工具。 减少开发的复杂度 确保您能更加轻松发布基于 Framework 的解决方案,包括 Windows、Web、移动和基 于 Office 的应用。 第三方的生态系统 允许您利用来自 Visual Studio 行业合作伙伴的参与研发的产品,并体验用来补充 Visual Studio 2005 - 6 - 吉林大学计算机科学与技术学院2008年本科学位论文 第三方解决方案的全面部署。 改善团队的沟通 给您提供高效智能的生命周期工具,通过使 用 Visual Studio 2005 Team System,来增强 IT 周期参与者之间的交流与协作。 2.1.2 Microsoft SQL Server 2000 SQL是英文Structured Query Language的缩写,意思为结 构化查询语言。SQL语言的主要功能就是同各种数据库建立联系, 进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各 样的操作,例如更新数据库中的数据,从数据库中提取数据等。 目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。 SQL Server 是一个关系数据库管理系统。它最初是由 Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。 SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本,该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能。具有使用方便可伸 缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。 - 7 - 吉林大学计算机科学与技术学院2008年本科学位论文 2.1.3 Office 2003 本系统中主要使用的是Office 2003中的Excel电子表格: 2.2 本系统主要开发工具:Visual Studio 2005集成开发环境下 - 8 - 吉林大学计算机科学与技术学院2008年本科学位论文 的VB.net、Microsoft SQL Server 2000和 Office 2003 中的Excel电子表格;主要涉及VB环境下如何连接SQL数据库、实现VB环境下与Excel电子表格的无缝连接,以及在集成开发环境下 的数据访问技术,下面一一介绍这三方面的问题。 2.2.1 VBSQL 这部分技术会在后面系统的详细设计阶段做全面的介绍; 2.2.2 VBExcel VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软 件的维护工作带来极大的不便。因此有很多程序员现在已经充分 利用EXECL的强大报表功来实现报表功能。但由于VB与EXCEL由于分别属于不同的应用系统,如何把它们有机地结合在一起, 是一个值得我们研究的课题。 2.2.2.1 VBEXCEL VB本身提自动化功能可以读写EXCEL表,其方法如下: 1、在工程中引用Microsoft Excel类型库: 从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择"确定"。表示在工程中要引用 EXCEL类型库。 2、在通用对象的声明过程中定义EXCEL对象: Dim xlApp As Excel.Application Dim xlBook As Excel.WorkBook Dim xlSheet As Excel.Worksheet 3、在程序中操作EXCEL表常用命令: Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象 Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在 - 9 - 吉林大学计算机科学与技术学院2008年本科学位论文 的EXCEL工件簿文件 xlApp.Visible = True '设置EXCEL对象可见(或不可见) Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表 xlSheet.Cells(row, col) =值 '给单元格(row,col)赋值 xlSheet.PrintOut '打印工作表 xlBook.Close (True) '关闭工作簿 xlApp.Quit '结束EXCEL对象 Set xlApp = Nothing '释放xlApp对象 xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏 xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏 4、在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。但在EXCEL操作过程中关闭EXCEL对象时,VB程序无法知道,如果此时使用EXCEL对象,则VB程序会产生自动化错误。形成VB程序无法完全控制EXCEL的状况,使得VB与EXCEL脱节。 2.2.2.2 EXCEL EXCEL提供一个Visual Basic编辑器,打开Visual Basic编辑器,其中有一工程属性窗口,点击右键菜单的"插入模块",则增加一个"模块1",在此模块中可以运用Visual Basic语言编写函数和过程并称之为宏。其中,EXCEL有两个自动宏:一个是 启动宏(Sub Auto_Open()),另一个是关闭宏(Sub Auto_Close())。它们的特性是:当用EXCEL打含有启动宏的工簿时,就会自动运 行启动宏,同理,当关闭含有关闭宏的工作簿时就会自动运行关 闭宏。但是通过VB的自动化功能来调用EXCEL工作表时,启动宏 和关闭宏不会自动运行,而需要在VB中通过命令xlBook.RunAutoMacros (xlAutoOpen)和xlBook.RunAutoMacros (xlAutoClose) 来运行启动宏和关闭宏。 - 10 - 吉林大学计算机科学与技术学院2008年本科学位论文 2.2.2..3 VBEXCEL 充分利用EXCEL的启动宏和关闭宏,可以实现VB与EXCEL的相互勾通,其方法如下: 在EXCEL的启动宏中加入一段程序,其功能是在磁盘中写入 一个标志文件,同时在关闭宏中加入一段删除此标志文件的程序。 VB程序在执行时通过判断此标志文件存在与否来判断EXCEL是否打开,如果此标志文件存在,表明EXCEL对象正在运行,应该禁 止其它程序的运行。如果此标志文件不存在,表明EXCEL对象已被用户关闭,此时如果要使用EXCEL对象运行,必须重新创建 EXCEL对象。 2.2.2.4 1、在VB中,建立一个FORM,在其上放置两个命令按钮,将Command1的Caption属性改为EXCEL,Command2的Caption属性改为End。然后在其中输入如下程序: Dim xlApp As Excel.Application '定义EXCEL类 Dim xlBook As Excel.Workbook '定义工件簿类 Dim xlsheet As Excel.Worksheet '定义工作表类 Private Sub Command1_Click() '打开EXCEL过程 If Dir("D:\temp\excel.bz") = "" Then '判断EXCEL是否打开 Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类 xlApp.Visible = True '设置EXCEL可见 Set xlBook = xlApp.Workbooks.Open("D:\temp\bb.xls") '打开EXCEL工作簿 Set xlsheet = xlBook.Worksheets(1) '打开EXCEL工作表 - 11 - 吉林大学计算机科学与技术学院2008年本科学位论文 xlsheet.Activate '激活工作表 xlsheet.Cells(1, 1) = "abc" '给单元格1行驶列赋值 xlBook.RunAutoMacros (xlAutoOpen) 运行EXCEL中的启动宏 Else MsgBox ("EXCEL已打开") End If End Sub Private Sub Command2_Click() If Dir("D:\temp\excel.bz") <> "" Then '由VB关闭EXCEL xlBook.RunAutoMacros (xlAutoClose) '执行EXCEL关闭宏 xlBook.Close (True) '关闭EXCEL工作簿 xlApp.Quit '关闭EXCEL End If Set xlApp = Nothing '释放EXCEL对象 End End Sub 图示如下: - 12 - 吉林大学计算机科学与技术学院2008年本科学位论文 2、在D盘根目录上建立一个名为Temp的子目录,在Temp目录下建立一个名为"bb.xls"的EXCEL文件。 3、在"bb.xls"中打开Visual Basic编辑器,在工程窗口中点鼠 标键选择插入模块,在模块中输入入下程序存盘: Sub auto_open() Open "d:\temp\excel.bz" For Output As #1 '写标志文件 Close #1 End Sub Sub auto_close() Kill "d:\temp\excel.bz" '删除标志文件 End Sub 图示如下: - 13 - 吉林大学计算机科学与技术学院2008年本科学位论文 4、运行VB程序,点击EXCEL按钮可以打开EXCEL系统,打开EXCEL系统后,VB程序和EXCEL分别属两个不同的应用系统,均可同时 进行操作,由于系统加了判断,因此在VB程序中重复点击EXCEL按钮时会提示EXCEL已打开。如果在EXCEL中关闭EXCEL后再点EXCEL按钮,则会重新打开EXCEL。而无论EXCEL打开与否,通过 VB程序均可关闭EXCEL。这样就实现了VB与EXCEL的无缝连接。 点击“Excel”之前: - 14 - 吉林大学计算机科学与技术学院2008年本科学位论文 点击之后,就打开了D盘Temp文件下的bb.xls文件; 这样我们可以在VB环境下修改Excel文件; 2.2.3 1、VB访问数据库的原则 总则:具体问题具体分析,根据具体的环境、条件、要求而采用 适当的方案; 代码的重用和运行的效率: 例如:通过使用ODBC数据源连接数据库的方法,可在变换 多种数据库类型的情况下,而不用频繁修改代码。用VBSQL通过DB-Library就做不到。而ODBC接口并不是VB访问数据库运行效率最高的方法。同样,同是使用ODBC接口的ADO的效率要高于RDO。 实现的简便性,易维护性: 如果一种方法实现起来很复杂,工程的开发必然造成人力物 - 15 - 吉林大学计算机科学与技术学院2008年本科学位论文 力的浪费,同时这样设计出来的应用程序只会支持起来更复杂或 维护时更困难。例如:本地需要访问ISAM或Jet类型数据源,那么就使用DAO/Jet,而没有必要使用通过ODBC的方法。RDC实现起来要较RDO更容易。 安全性原则: 报这一条应根据环境和条件决定。例如局域网的网络安全性 要好于广域网因而可直接利用数据控件如DC,这样实现起来方 便快捷,而广域网需要大量的错误捕获,如用RDC就不如用RDO易控制错误。 2、VB访问数据库的方法 VB访问数据库的方法很多,一般情况下分成两大类,而每 一类又有很多方法。 数据访问接口功能及含义: ADC 高级数据连接器(AdvancedDataConnector):提供绑定ADO数据源到窗体的数据绑定控件上。ADC主要是一种直接访问或者 通过ADO访问远程OLEDB对象的一种技术,它也支持主要应用 在微软IE浏览器上的数据绑定控件。它是特地为Web上的浏览器为基础的应用程序而设计的。 ADO Active数据对象(ActiveDataObjects):ADO实际是一种提供访问各种数据类型的连接机制。ADO设计为一种极简单的格 式,通过ODBC的方法同数据库接口。可以使用任何一种ODBC数据源,即不止适合于SQLServer、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数 据文件。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。 DAO数据访问对象(DataAccessObjects):是一种面向对象的界面 接口。通过DAO/Jet功能可以访问ISAM数据库,使用DAO/ODBCDirect功能可以实现远程RDO功能。使用DAO的程序编码非常简单,DAO提供丰富的游标(Cursor)类型的结果集和非游标(Cursor-Less)类型的结果集,同DDL(数据描述语言)的功能很类似。 DAO模型是设计关系数据库系统结构的对象类的集合。它们提供 了完成管理这样一个系统所需的全部操作的属性和方法,包括创 建数据库,定义表、字段和索引,建立表间的关系,定位和查询 数据库等工具。 - 16 - 吉林大学计算机科学与技术学院2008年本科学位论文 JET 数据连接性引擎技术(JointEngineTechnology):是一种基于工作站通过DAO的数据库访问机制。虽然可以通过微软Access提供的ODBC驱动程序访问Jet数据库,但使用这些驱动程序在 功能上有所限制。Jet机制有自己的查询和结果集处理功能,并可 对同种或异种数据源作查询处理。 0DBC 开放式的数据库连接(OpenDatabaseConnectivity):是一种公认的关系数据源的接口界面。它快而轻并且提供统一接口的界 面,ODBC对任何数据源都未作优化。 ODBCDirect:是一种基于DAO对象的新的DAO模式,其方法和属性与RDO功能相同。使用在有DAO代码存在的场合,可用来 访问远程数据源。 OLEDB:是一种底层数据访问界面接口。是用于第三方驱动程序 商家开发输出数据源到ADO技术的应用程序或用于C++的开发者开发定制的数据库组件。OLEDB不能被VB直接调用。 RDC:远程数据访问控件(RemoteDataControl):是一种对RDO数据绑定的控件。可以输出特定的结果集到数据源控件。 RDO:远程数据对象(RemoteDataObjects):远程数据对象和集合为 使用代码来创建和操作一个远程ODBC数据库系统的各个部件 提供了一个框架。对象和集合都具有描述数据库的各个部件特征 的属性以及用来操作这些部件的方法。可以在对象和集合之间建 立起关系,这些关系就代表了数据库系统的逻辑结构。RDO是ODBCAPI的一个浅层界面接口。是专为访问远程ODBC关系数据源而设计的。 除RDO外,还可使用RDC访问远程数据库。 远程数据控件(RDC)与数据控件(DC)类似,不同之处是RDC使用RDO连接到ODBC驱动程序管理器,而DC则使用DAO连接到Jet数据库引擎。利用RDO和RDC,无需使用Jet引擎就可以访问ODBC数据源。这样,在访问远程数据库时,可以获得更好的性能和更大的灵活 性。 可以使用RDC执行许多简单的远程数据访问操作,不需编 写任何代码,只要填写有关项就可以了,使用起来很方便。但应 注意,除非在设计时禁止并只在需要时启动RDC,否则它至少将消耗一个远程数据库连接。在远程数据库连接资源有限或要求很 - 17 - 吉林大学计算机科学与技术学院2008年本科学位论文 高效的情况下,宜慎用、少用RDC。这种情况下,应尽可能考虑 使用RDO,并使用存储过程(预编译好的SQL语句)。 最后还应注意,只有32位操作系统(如WindowsNT或Windows95),才能支持RDO和RDC。RDO和RDC也只能用于访问32位ODBC数据源。 本数据转换系统中使用到的是ADO数据库开发技术。具体的使 用方法会在系统详细设计阶段做详细介绍。 2.3 微软的Excel对象模型中经常使用的四个对象 有:Application对象,它处于Excel对象层次结构的顶层,表示 Excel自身的运行环境;Workbook对象,它直接地处于Application对象的下层,表示一个Excel工作薄文件;Worksheet对象它包含于Workbook对象,表示一个Excel工作表;Range对象,它包含于Worksheet对象,表示Excel工作表中一个或者多个单元格。 用VB程序可以对这些对象进行直接控制,实现数据的转换以及 输出。 Excel的工作表Sheet由行和列组成,行可以对应数据库表 格中的一条条,列可以对应数据库表中的字段。这样只要我 们建立一一对应的关系,实现数据转换时完全可行的。具体方法 如下:首先对照SQL数据库中的相应字段的类型和长度,然后根 据确定的情况在Excel中建立相应的列,之后循环处理数据库中 表的数据,输出到Excel工作表中相应的行上。 - 18 - 吉林大学计算机科学与技术学院2008年本科学位论文 3.1 连接到VB 环境下 VB环境下里利用数据库SQL数据库中连接变量打开数据表文数据表文件 件,提取数据 利用Excel对象 操作数据 导出Excel数据 表文件 3.2 Excel 通过使用Excel对象,可以很容易的在Visual Basic数据库程序中生成Excel报表。程序的最终用户可以用Excel程序打开数据库应用系统生成的报表,并利用Excel本身功能完成对报表 的打印预览、打印、保存等功能。 Excel对象封装了Microsoft Excel的全部元素,利用Excel对象提供的属性、方法和事件,可以很容易的在应用程序中生成 Excel报表。 Excel对象模型描述了Excel中对象之间的结构关系,如下 图所示: - 19 - 吉林大学计算机科学与技术学院2008年本科学位论文 Application对象 Workbook对象 Worksheet对象 Range对象 下面对上图所示的常用Excel对象进行详细介绍: (1)Application对象表示Excel应用程序。在Excel对象模型中 Application对象处于模型的顶端。通过使用Application对象,可以访问模型中的其他对象,从而可以控制Excel应用程序的外观或功能等。 例如打开Visual Basic程序所在路径下的Excel文件,代码如下: Application.Workbooks.Open App.Path&“\book1.xls” Application.Visible=True 退出Excel,代码如下: Application.Quit (2)Workbook对象表示Excel中的工作薄,即对应一个Excel文件。通过使用Workbook对象,可以实现对Excel工作薄的各种控制。 例如创建一个工作薄,代码如下: Application.Workbooks.add (3)Worksheet对象表示Excel的工作表。通过使用Worksheet对象,可以实现对Excel工作表的控制。例如创建一个工作表, 代码如下:Application.Worksheets.Add (4)Range对象表示Excel中的区间,例如可以代表Excel的某一个单元格、某一行、某一列、某个选定区域(该选定区域可以 包含一个或若干个连续单元格区域)或者某一个三维区域。例如 将Excel单元格A1中的值设置为“价格”,代码如下: Dim newxls As New Excel.Application - 20 - 吉林大学计算机科学与技术学院2008年本科学位论文 Dim newbook As New Excel.Workbook Dim newsheet As New Excel.Worksheet Private Sub Command1_Click() newxls.Workbooks.Open App.Path&“\book1.xls” Set newbook=newxls.Workbooks(1) Set newssheet=newbook.Worksheets(1) newsheet.Range(“A1”).Value=“价格” newxls.Visible=True End sub - 21 - 吉林大学计算机科学与技术学院2008年本科学位论文 4.1 数据转换系统需要的数据源中已有的数据表的内容作为转换 的基础,本系统设计的数据库只需在Microsoft SQL Server 2000 管理器中建立即可。由于数据库的表和视图较多,所以只选择典 型的实例列在下面,表中的字段只是选择必须的字段。 以一个学生信息表为例: 4.2 VB 首先,配置Microsoft SQL Server 2000 数据库文件;打开SQL Server客户端的SQL Server服务管理器,配置服务器设置; - 22 - 吉林大学计算机科学与技术学院2008年本科学位论文 点击“开始/继续”按钮,在本地客户端架设了一个本地服 务器; 然后,打开SQL Server下的企业管理器,在(local)(Windows NT)下的数据库文件上右键点击,选择“新建数据库”,弹出“数 据库属性”对话框,设置数据库属性; - 23 - 吉林大学计算机科学与技术学院2008年本科学位论文 例如创建一个名称为“vs.net”的数据库,在vs.net上单击左键,打开根子目录,选择表,在表上右键选择“新建表”,新建 一个名称为vs的数据表; - 24 - 吉林大学计算机科学与技术学院2008年本科学位论文 设置表达内容和各项属性;以下图为例: 以上为配置数据库SQL服务器以及建立关系数据文件的操作 过程,之后我们需要在VB.net环境中连接我们假设的服务器; 首先,打开Visual Studio 2005,新建一个VB.net项目,以Windows应用程序为例; 从工具栏中视图下拉菜单中选择服务器资源管理器; - 25 - 吉林大学计算机科学与技术学院2008年本科学位论文 在服务器资源管理器下属数据连接目录上右键选择添加连 接, 打开添加连接对话框,在对话框中添加相关数据,配置服务 器相关资源,然后点击测试连接; - 26 - 吉林大学计算机科学与技术学院2008年本科学位论文 此时我们看到测试连接成功,说明我们已经成功将 Microsoft SQL Server 连接到VB.net的开发环境当中;点击确 - 27 - 吉林大学计算机科学与技术学院2008年本科学位论文 定,我们看到左侧的服务器资源管理器当中出现了SQL Server服务器的目录,下属目录当中有我们建立的数据库文件; 4.3 ADOSQL Server2000 其中有三种方法可以实现连接,使用ODBC DSN连接,无ODBC DSN连接,以及使用OLEDB Provider for SQL Server 连接,本系统实现时使用的是第三种,所以在此详细介绍一下第三种方法: (1)标准: cn.open “Provider=sqloledb;”&_ “Data Source=myServerName;”&_ “Initial Catalog=book;”&_ “User Id=myUsername;”&_ “Password=myPassword” (2)连接本地机: cn.open “Provider=sqloledb;”&_ “Data Source=(local);”&_ - 28 - 吉林大学计算机科学与技术学院2008年本科学位论文 “Initial Catalog=book;”&_ “User Id=sa;”&_ “Password=111111” (3)连接远程计算机: cn.open “Provider=sqloledb;”&_ “Network Library=DBMSSOCN;”&_ “Data Source=xxx.xxx.xxx.xxx,1433;”&_ “Initial Catalog=book;”&_ “User Id=sa;”&_ “Password=111111” 其中由于本转换系统的数据库服务器在本地机器上架设,所 以才用的是第二种情况; 4.4 对于次要功能,实现了下列功能:数据表中满足条件的数据 转入Excel中。实现方法:在SQL Server客户端下创建存储过程,其中设置一下查询条件,对数据库环境进行初始化和参数设置, 并连接SQL数据表,然后再VB中实现对该存储过程的调用,即可 实现根据表结构来生成相应的表结构,并且可以对查询的结果进 行导出到Excel表格中。 - 29 - 吉林大学计算机科学与技术学院2008年本科学位论文 这章节主要介绍一下软件方面的具体实现; 5.1 SQLExcel 程序中用到四个Label控件,四个Textbox控件和一个Button控件,应用程序界面如下所示: 具体实现代码如下: Imports System.Data.OleDb Public Class Form1 Private Sub InitializeComponent() Me.Label1 = New System.Windows.Forms.Label Me.Label2 = New System.Windows.Forms.Label Me.Label3 = New System.Windows.Forms.Label Me.Label4 = New System.Windows.Forms.Label - 30 - 吉林大学计算机科学与技术学院2008年本科学位论文 Me.Label5 = New System.Windows.Forms.Label Me.TextBox1 = New System.Windows.Forms.TextBox Me.TextBox2 = New System.Windows.Forms.TextBox Me.TextBox3 = New System.Windows.Forms.TextBox Me.TextBox5 = New System.Windows.Forms.TextBox Me.Button1 = New System.Windows.Forms.Button Me.TextBox4 = New System.Windows.Forms.TextBox Me.SuspendLayout() Me.Label1.Location = New System.Drawing.Point(40, 28) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(114, 23) Me.Label1.TabIndex = 0 Me.Label1.Text = "数据库服务器名:" Me.Label2.Location = New System.Drawing.Point(64, 59) Me.Label2.Name = "Label2" Me.Label2.TabIndex = 1 Me.Label2.Text = "数据库名称:" Me.Label3.Location = New System.Drawing.Point(64, 90) Me.Label3.Name = "Label3" Me.Label3.TabIndex = 2 Me.Label3.Text = "数据表名称:" Me.Label4.Location = New System.Drawing.Point(88, 121) Me.Label4.Name = "Label4" Me.Label4.TabIndex = 3 Me.Label4.Text = "用户名:" Me.Label5.Location = New System.Drawing.Point(98, 152) Me.Label5.Name = "Label5" Me.Label5.TabIndex = 4 Me.Label5.Text = "口令:" Me.TextBox1.Location = New System.Drawing.Point(160, 26) Me.TextBox1.Name = "TextBox1" Me.TextBox1.Size = New System.Drawing.Size(148, - 31 - 吉林大学计算机科学与技术学院2008年本科学位论文 21) Me.TextBox1.TabIndex = 5 Me.TextBox1.Text = "" Me.TextBox2.Location = New System.Drawing.Point(160, 56) Me.TextBox2.Name = "TextBox2" Me.TextBox2.Size = New System.Drawing.Size(148, 21) Me.TextBox2.TabIndex = 6 Me.TextBox2.Text = "" Me.TextBox3.Location = New System.Drawing.Point(160, 86) Me.TextBox3.Name = "TextBox3" Me.TextBox3.Size = New System.Drawing.Size(148, 21) Me.TextBox3.TabIndex = 7 Me.TextBox3.Text = "" Me.TextBox5.Location = New System.Drawing.Point(160, 146) Me.TextBox5.Name = "TextBox5" Me.TextBox5.PasswordChar = Microsoft.VisualBasic.ChrW(42) Me.TextBox5.Size = New System.Drawing.Size(148, 21) Me.TextBox5.TabIndex = 9 Me.TextBox5.Text = "" Me.Button1.Location = New System.Drawing.Point(120, 198) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(126, 36) Me.Button1.TabIndex = 10 Me.Button1.Text = "导出Excle表格" Me.TextBox4.Location = New System.Drawing.Point(160, 116) Me.TextBox4.Name = "TextBox4" Me.TextBox4.Size = New System.Drawing.Size(148, 21) Me.TextBox4.TabIndex = 8 - 32 - 吉林大学计算机科学与技术学院2008年本科学位论文 Me.TextBox4.Text = "" Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14) Me.ClientSize = New System.Drawing.Size(374, 271) Me.Controls.Add(Me.Button1) Me.Controls.Add(Me.TextBox5) Me.Controls.Add(Me.TextBox4) Me.Controls.Add(Me.TextBox3) Me.Controls.Add(Me.TextBox2) Me.Controls.Add(Me.TextBox1) Me.Controls.Add(Me.Label5) Me.Controls.Add(Me.Label4) Me.Controls.Add(Me.Label3) Me.Controls.Add(Me.Label2) Me.Controls.Add(Me.Label1) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle Me.MaximizeBox = False Me.Name = "Form1" Me.Text = "Visual Basic .Net导入数据库数据到Excel 表格" Me.ResumeLayout(False) End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '创建一个DataSet Dim myDataSet As DataSet = New DataSet '连接数据库,得到数据集 Try ' 设定数据连接字符串,此字符串的意思是打开Sql server数据 库,服务器名称为本地,数据库为temp Dim strCon As String = "Provider = SQLOLEDB.1; Persist Security Info = False; User ID = " & TextBox4.Text & " ;PSW=" & TextBox5.Text _& " ; Initial Catalog = " & TextBox2.Text & " ;Data Source = " & TextBox1.Text '数据连接代码,对此修改可导入其他类型数据库到Excle表格 Dim myConn As OleDbConnection = New - 33 - 吉林大学计算机科学与技术学院2008年本科学位论文 OleDbConnection(strCon) myConn.Open() Dim strCom As String = "SELECT * FROM " & TextBox3.Text Dim myCommand As OleDbDataAdapter = New OleDbDataAdapter(strCom, myConn) myCommand.Fill(myDataSet, "table01") '关闭此OleDbConnection myConn.Close() Catch ey As Exception MessageBox.Show("连接错误! " + ey.ToString(), "错误") End Try Dim table As DataTable = myDataSet.Tables("table01") '创建一个空的Excel电子表格文档 Dim AppExcel As Excel.Application = New Excel.Application AppExcel.Application.Workbooks.Add(True) '读取数据的字段名称,并在产生的Excel表格的第一行 显示出来 Dim colIndex As Integer = 0 Dim col As DataColumn = New DataColumn For Each col In table.Columns colIndex = colIndex + 1 AppExcel.Cells(1, colIndex) = col.ColumnName Next '实现数据集到Excel表格的转换 Dim rowIndex As Integer = 1 Dim row As DataRow For Each row In table.Rows rowIndex = rowIndex + 1 colIndex = 0 Dim col1 As DataColumn For Each col1 In table.Columns colIndex = colIndex + 1 AppExcel.Cells(rowIndex, colIndex) = row(col1.ColumnName).ToString() - 34 - 吉林大学计算机科学与技术学院2008年本科学位论文 Next Next AppExcel.Visible = True End Sub End Class 5.2 对于数据转换系统的次要功能,实现要求: 数据表中满足条件的数据转入Excel中;采用调用存储过程的方法实现次要功能: 导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件 ,如果文件不存在,将自动创建文件;如果表不存在,将自动创建表;基于通用性考虑,仅支持导出标准数据类型。 /*--调用示例 p_exporttb @sqlstr='select * from vs' ,@path='c:\',@fname='aa.xls',@sheetname='vs' if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_exporttb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[p_exporttb] GO create proc p_exporttb @sqlstr sysname,--查询语句,如果查询语句中使用了order by ,请加上top 100 percent,注意,如果导出表/视图,用上面的存储过程 @path nvarchar(1000),--文件存放目录 @fname nvarchar(250),--文件名 @sheetname varchar(250)=''--要创建的工作表名,默认为文件名 as declare @err int,@src nvarchar(255),@desc nvarchar(255),@out int declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000) --参数检测 - 35 - 吉林大学计算机科学与技术学院2008年本科学位论文 if isnull(@fname,'')=''set @fname='temp.xls' if isnull(@sheetname,'')='' set @sheetname=replace(@fname,'.','#') --检查文件是否已经存在 if right(@path,1) <>'\' set @path=@path+'\' create table #tb(a bit,b bit,c bit) set @sql=@path+@fname insert into #tb exec master..xp_fileexist @sql --数据库创建语句 set @sql=@path+@fname if exists(select 1 from #tb where a=1) set @constr='DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';READONLY=FALSE' +';CREATE_DB="'+@sql+'";DBQ='+@sql else set @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 5.0;HDR=YES' +';DATABASE='+@sql+'"' --连接数据库 exec @err=sp_oacreate 'adodb.connection',@obj out if @err <>0 goto lberr exec @err=sp_oamethod @obj,'open',null,@constr if @err <>0 goto lberr --创建表的SQL declare @tbname sysname set @tbname='##tmp_'+convert(varchar(38),newid()) set @sql='select * into ['+@tbname+'] from('+@sqlstr+') a' exec(@sql) select @sql='',@fdlist='' select @fdlist=@fdlist+','+a.name ,@sql=@sql+',['+a.name+'] ' +case when b.name - 36 - 吉林大学计算机科学与技术学院2008年本科学位论文 in('char','nchar','varchar','nvarchar') then 'text('+cast(case when a.length>255 then 255 else a.length end as varchar)+')' when b.name in('tynyint','int','bigint','tinyint') then 'int' when b.name in('smalldatetime','datetime') then 'datetime' when b.name in('money','smallmoney') then 'money' else b.name end FROM tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertype where b.name not in('image','text','uniqueidentifier','sql_variant','ntex t','varbinary','binary','timestamp') and a.id=(select id from tempdb..sysobjects where name=@tbname) select @sql='create table ['+@sheetname +']('+substring(@sql,2,8000)+')' ,@fdlist=substring(@fdlist,2,8000) exec @err=sp_oamethod @obj,'execute',@out out,@sql if @err <>0 goto lberr exec @err=sp_oadestroy @obj --导入数据 set @sql='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel 5.0;HDR=YES ;DATABASE='+@path+@fname+''',['+@sheetname+' $])' exec('insert into '+@sql+'('+@fdlist+') select '+@fdlist+' from ['+@tbname+']') set @sql='drop table ['+@tbname+']' exec(@sql) return lberr: exec sp_oageterrorinfo 0,@src out,@desc out - 37 - 吉林大学计算机科学与技术学院2008年本科学位论文 lbexit: select cast(@err as varbinary(4)) as 错误号 ,@src as 错误源,@desc as 错误描述 select @sql,@constr,@fdlist go 在查询分析器中运行后,会在数据库中生成一个p_exporttb 存储过程,查询分析器中调用存储过程: exec p_exporttb @sqlstr='select * from ziliao',@path='e:\',@fname='ziliao.xls',@sheetname='newt able' 相当与一个函数,向其中传参数。 在vb中实现了对该存储过程的调用,代码如下: Private Sub Command1_Click() On Error GoTo err Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim s As String cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=false;User ID=sa;Password=;Initial Catalog=test;Data Source=(local)" cn.CursorLocation = adUseClient cn.Open 's = "p_exporttb 'select * from syscolumns','e:\','ziliao.xls'," & tablename & "" s = "p_exporttb '" & sqlstr & "','" & path & "','" & filename & "'," & tablename & "" Set rs = cn.Execute(s) cn.Close Set cn = Nothing MsgBox "ok!" Exit Sub err: MsgBox err.Description End Sub 采用该存储过程,可以根据表结构来生成相应的表结构。可 以对查询的结果进行导出(select语句)。 - 38 - 吉林大学计算机科学与技术学院2008年本科学位论文 6.1 本数据转换系统的测试环境是一本机作为SQL数据库的服务器,以Windows系统身份登录, 测试环境: 硬件环境:本地服务器AMD Sempron(tm) Processor 2800+,1.60GHz,512MB内存 软件环境:Microsoft Windows XP Professional 版本2002 Service Pack2 Visual Studio 2005 / Visual Basic 6.0 Microsoft SQL Server 2000 Microsoft Office 2003 6.1.1 SQL 发现问题:配置SQL数据库数据源的时候,发现当通过服务 管理器开启服务器之后停一两分钟,服务器的状态自动从开始变 为停止。 解决办法:经查看系统进程,发现本地机器上装的360安全卫士对数据源运行进程有屏蔽作用,当把360安全卫士关闭之后, 一切恢复正常。 6.1.2 VB 发现问题:在程序代码中需要有连接数据库的变量定义要求, set cn = New Connection '建立数据库连接 cn.Open "provider = SQLOLEDB.1;Persist Security Info=False;User ID=;Initial Catalog=baoyun;Data Source=59.72.11.76" 如上的代码调试程序是会出现错误,提示无法连接数据库。 - 39 - 吉林大学计算机科学与技术学院2008年本科学位论文 解决办法:通过查阅网上相关问题的解决方法之后, cn.Open "driver={sql server}; server=(local); UserID=; Password=; Database=baoyun" 这样调试之后就可以顺利解决,原因在于本机的数据库服务 器在建立的时候采用的是Windows系统身份登录,因此server应该设置成(local); 6.1.3 发现问题1:一开始想把数据导入到一张已存在的空表里, 但总是报列名无效的错。 解决办法:把要导入到Excel表格改为一张不存在的表,执 行后自动生成表,数据也导入了表中。 发现问题2:涉及到了对存储过程的调试,在查询分析器中 选中该过程右键即有调试。但是单步等按钮都是灰的,不可按下。 解决办法:要把mssqlserver和sqlserveragent两个服务的登陆方式改为administrator,而不是本地系统帐号。 6.2 从一个实例来分析一下: 在本地SQL服务器中新建名为aXLS的数据库,在其下属表中 建立一个名为sqlb的数据表,内容如下设定: - 40 - 吉林大学计算机科学与技术学院2008年本科学位论文 然后通过数据转换系统的转换, 在Excel电子表格中得到下面的结果: 可以当在定义SQL数据表文件的时候,对字段的定义要设置 好类型和长度,最好不要有允许空和识别字段,这是由于Excel对数据的特殊性要求。 6.3 本系统在设计过程中遇到了许多困难,但经过导师以及多方 面资料和网站的查询,均被一一克服,最终成功实现了数据转换 - 41 - 吉林大学计算机科学与技术学院2008年本科学位论文 系统。 但是任何一个软件系统都不是完美的,都有自身的缺陷。由于在 VB编程方面经验缺乏和时间限制,本系统在测试过程中也发现了 个别不足之处。在本节内容指出来,待老师和同学参考,并帮助 给予一定的指导和帮助,以便于日后系统的完善与更新。 1. 本系统版面简单清晰,但是真个系统只有一个界面,使系统显 得单调,死板,所以希望能够在版面设计上有所提高,例如把 程序的图标定义为一个个性的图标等等。 2. 在系统测试过程中,发现在重复点击“导入开始”时,系统会 在原来的.xls的输出文件中连续导入数据,并不是重新建立 一个数据表,目前还没考虑到解决的办法。只能在转换完成之 后,若要进行下次的转换,需要把上次的输出文件删除或者备 份,以防发生上述的情况。 - 42 - 吉林大学计算机科学与技术学院2008年本科学位论文 [1]明日科技 安剑 孙秀梅编著,Visual Basic 数据库系统开发自学手册, 人民邮电出版社,2008年3月第一版 [2]王颖 李敏业 编著,Visual Basic+SQL Server 数据库应用实例完全解析,人民邮电出版社,2006年4月第一版 [3]刘韬 骆娟 编著,Visual Basic数据库通用模块及典型系统开发实例 导航,人民邮电出版社,2006年2月第一版 [4]刘珊编著,Visual Basic.NET数据库编程技术与实例,人民邮电出版 社,2008年2月第一版 [5]张智毅 温才燚编著,Visual Basic.NET+SQL Server数据库开发从基础到实践,2006年3月,电子工业出版社 [6] Roger Jennings编著,Expert One-on-One? Visual Basic?2005 Database Programming,2005年 [7]ROBIN DEWSON, Apress.Beginning.SQL.Server.2005.for.Developers,2007年 - 43 - 吉林大学计算机科学与技术学院2008年本科学位论文 特别感谢指导教师杨瀛涛,指导教师不仅传授了我专业技术 和知识,最重要的是教会了我如何学习和一些实用的学习方法, 也提高了我的学习能力。 最后我还要感谢我的一些朋友和同学,虽然工作组目前只有我一 个人,但是在我遇到问题和困难的时候,我的周围凝聚了集体的 力量,他们在课题设计中给了我许多的帮助,才使得我的毕业设 计能够顺利的完成。 - 44 -
/
本文档为【数据库数据到Excel电子表格数据的转换论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索