本书由微软数据库开发专家、知名图书大师Roger Jennings编写,面向有经验的Visual Basic程序员。本书包含丰富的Visual Basic 2005数据开发技巧和经验,内容涉及到ADO.NET 2.0、SQL Server 2005、ASP.NET 2.0数据处理技术等,可帮助读者大大提升利用Visual Basic 2005和SQL Server 2005开发数据库应用程序的能力。\r\n 您还在犹豫是否移植到Visual Studio 2005吗?您也许已经做好了升级到Visual Studio 2005的准备,但对ADO.NET以及此新版本的Visual Studio Tools心存疑虑。本书介绍Visual Studio 2005以及SQL Server或SQLServer Express 2005的最佳实践、最新功能以及高级数据管理技术,同时还介绍从简单到中等复杂程度的项目示例,这些示例是包含Windows和Web窗体的真实数据库前端应用程序。\r\n 本书首先介绍ADO.NET 2.0的基础知识,然后介绍如何以类型化DataSet为数据源来设计、编写智能客户端,并介绍DataSource、GridView和DetailsView Web控件的使用。最后,介绍如何使用新T-SQL扩展、Web服务以及通知。\r\n 本书主要内容:\r\n ● 如何通过示例数据库,用不到5分钟的时间而且不用编写任何代码来构建实用的Windows和Web窗体。\r\n ● 为绑定文本框和DataGridView编写数据验证代码。\r\n ● ASP.NET 2.0数据技术的高级应用。\r\n ● 创建和部署VB 2005 SQL CLR项目。\r\n 本书读者对象\r\n 本书适用于准备从VB6或VS 2002/2003移植到VB 2005、且有VB编程经验的人员。对VB 2005或VB Express 2005环境有基本了解有助于学习本书,但并不需要必须了解这些内容。本书不需要读者有使用VB6、VBA或VB Script的经验。
第I部分 ADO.NET 2.0\r\n 基础知识\r\n 第1章 从ADO向ADO.NET移植 \r\n 1.1 数据访问的新方式 \r\n 1.1.1 System.Data命名空间 \r\n 1.1.2 ADO.NET数据提供者 \r\n 1.2 ADO.NET的基本数据对象 \r\n 1.2.1 用SqlClient创建基本ADO.NET数据对象 \r\n 1.2.2 对多表更新应用事务 \r\n 1.2.3 使用OleDb、SqlXml和Odbc成员类 \r\n 1.2.4 使用类型化DataReader数据和SqlResultSet数据 \r\n 1.3 ADO.NET的类型化DataSet对象 \r\n 1.3.1 通过SQL Server数据源添加类型化DataSet \r\n 1.3.2 添加DataGridView和BindingNavigator控件 \r\n 1.3.3 持久化和重新打开DataSet \r\n 1.3.4 将DataViewGrid更改为Details窗体 \r\n 1.3.5 添加相关的DataBound控件 \r\n 1.4 小结 \r\n 第2章 ADO.NET 2.0新功能介绍 \r\n 2.1 使用新的ADO.NET 2.0运行时Windows窗体对象\r\n 2.1.1 用DbProviderFactories创建数据库不明确的项目 \r\n 2.1.2 检索基表架构 \r\n 2.1.3 校验有效的SQL Server实例和ADO.NET 2.0数据提供者 \r\n 2.1.4 利用SqlBilkCopy对象对SQL Server表进行批量插入 \r\n 2.1.5 SQL Server连接统计信息 \r\n 2.1.6 异步执行SqlCommands \r\n 2.1.7 创建单独的DataTable \r\n 2.1.8 用Nullable类型支持DBNull值 \r\n 2.2 使用ADO.NET 2.0的新持久性Windows窗体对象 \r\n 2.2.1 ADO.NET 1.x与2.0的数据设计器比较 \r\n 2.2.2 向工具箱添加没显示的ADO.NET控件 \r\n 2.2.3 将1.x项目升级为ADO.NET 2.0组件\r\n 2.2.4 添加多级子窗体 \r\n 2.2.5 参数化MasterDetailsForm \r\n 2.2.6 批量多次更新 \r\n 2.3 用ReportViewer控件设计和显示报表 \r\n 2.4 小结 \r\n 第3章 对以数据为中心的项目采用最佳实践 \r\n第Ⅱ部分 Windows窗体和控件中的数据绑定\r\n 第4章 对TableAdapters、Binding Sources和DataGridView编程\r\n 第5章 添加数据验证和并发管理 \r\n 第6章 高级DataSet技术应用 \r\n第III部分 ASP.NET 2.0中的数据绑定\r\n 第7章 ASP.NET 2.0的DataSources和绑定控件 \r\n 第8章 高级ASP.NET 2.0数据技术应用 \r\n 第9章 发布数据驱动的Web服务 \r\n第IV部分 SQL Server 2005和ADO.NET 2.0\r\n 第10章 从SQL Server 2000升级到2005 \r\n 第11章 创建SQL Server项目 \r\n 第12章 分析xml数据类型
引 前 言
自从Microsoft于1998年6月15日推出对应的产品后,几乎80%以上的Visual Basic 6.0项目涉及到与一个或多个关系数据库的连接。Access 1.0于1992年引入了连接性引擎技术(Joint Engine Technology,Jet)索引的顺序访问方法(ISAM)数据库和Embedded Basic。Embedded Basic是Visual Basic for Applications (VBA)的前身。Access 1.0和1.1能够对Jet、SQL Server 4.2以及有开放式数据库连接(Open Database Connectivity,ODBC)驱动程序的其他客户端/服务器前端进行快速应用程序开发。Visual Basic 3.0于1993年引入了数据绑定和第一个数据绑定表格控件。随着它们的出现,介绍用SQL和ODBC VB数据库编程的书籍、杂志和文章像潮水一样涌出。Visual Basic 4.0引入了32位项目,但它并不是一个健壮的开发平台。1995年推出的Visual Basic 5.0增加了动态数据对象(ActiveX Data Objects,ADO)1.0和OLE DB。VB和VBA当时成为世界上最流行的编程语言,估计用户已达到3百万。到1998年,大多数专业VB6开发员在为客户端/服务器编写产品级Windows前端,并开始对三层、分布式数据访问体系结构采用Microsoft Transaction Server 1.0。在后来的4年中,开发人员编写了数以百万计行的数据密集型VB代码。
随着2002年Visual Studio .NET的推出,对基于COM的VB和VBA的升级敲响了丧钟。Visual Basic 6.0已经移植到从过去的开发平台中保留下来的维护模式的应用中。微软宣布:到2005年3月31日将结束对VB6的主流支持,并在2008年结束对VB6的扩展(付费)支持。2005年3月初,微软最有价值专家(Microsoft Most-Valued Professionals,MVPs)组组织了请愿:“……在Visual Studio IDE中要包括VB6的升级版”。到3月中旬,已有200多家以前以及当时的MVPs对请愿签了名。计算机出版业参加请愿导致了大量博客的出现,它们支持或者反对VB或VBA以未托管的VB.COM形式存在。微软最终采用请愿者建议的可能性很小,而且可能性为零。微软预测将来会出现托管代码。对于VB编程人员来说,如果他们不更新其技术,将会被排斥在应用程序生命周期维护之外,或者更糟。如果大家还没有对新的数据密集型项目采用.NET Framework和托管VB代码的话,那么通过学习本书内容并参考其示例代码和项目就可以成为VB 2005数据库的熟练编程人员。
VB开发人员面临的另一个问题是:与(Visual) C#开发人员相比,他们给人以“二等公民”的感觉。由于开发人员对C#或Java的抵制,要减少VB应用的谣言被夸大。VB 2005比传统的、易读的VB语法更全面、兼容性更好。VS 2002/2003的VB语言缺少许多C#的语言特征,而且由Redmond提供的大多数托管代码示例是用C#编写的。Microsoft开发人员对C#的偏爱可以理解,因为大多数开发人员有多年的C++和JScript编程经验。VB 2005通过增加部分类、操作符重载、泛型、数学运算、用于无符号Integer和Long数据类型的类型转换、用于内部对象处理的using关键词以及XML注释,使其与C#的地位逐渐接近。VB 2005编程人员几乎可以使用所有C#编程结构,但是C#缺少VB 2005的新的My命名空间和已有的With...End With结构的便捷性。本书提供了一些详细示例,这些示例可说明适用于数据密集型应用程序的VB 2005语言的新结构和新功能。
Visual Studio和Visual Basic Express Edition 2005(VBX)利用Data Sources窗口增强了作为部分类的类型化DataSet对象的拖放生成功能,还增强了用于DataAdapter对象的TableAdapter包装器以及TableAdapter Configuration Wizard。通过从Data Sources窗口向Windows窗体拖放表图标,可自动添加用户选择的绑定文本框或DataGridView控件。DataGridView控件替换了倍受争议的GridView控件。BindingSource对象将DataSource连接到绑定控件,并BindingNavigator(预置ToolStrip控件)处理行导航。利用Web窗体,能够通过从Server管理器拖表图标的方式生成新的GridView和其他数据绑定控件。新的DataSet设计器代替了VS2002/2003的XML架构。本书第1、2、7章将介绍如何通过示例数据库,用不到5分钟的时间,且不用编写任何代码就能够构建可用的主、子Windows窗体和Web窗体。其余各章将介绍如何通过事件处理代码自定义或扩展绑定和未绑定控件的功能。
Visual Studio 2005提供的联机帮助的不足之处是:缺少用于数据密集型项目的复杂Windows窗体和Web窗体代码示例。帮助文件中的大多数示例代码要生成控制台项目,它们很难用于数据密集型应用程序。读者找不到用于本书、超过100 MB(压缩后20 MB)、可下载且以数据为中心的示例项目这样的单控制台项目。各项目示例用Windows和Web窗体模拟了从简单到中等复杂程度的实际数据库前端应用程序。
本书读者对象
本书面向从VB6或VS 2002/2003升级到VB 2005且有一定编程经验的VB编程人员。本书假设读者对VB 2005集成开发环境(IDE)有基本的了解,但并不需要有VB6、VBA或VBScript数据库编程经验(第1章“从ADO向ADO.NET移植”除外)。读者最好编写过Microsoft Transact-SQL (T-SQL)语句和简单存储过程。如果读者熟悉XML 1.0和XML,则会更易于掌握DataSets和SQL Server 2005的新xml数据类型。如果读者编写过XPath 1.0表达式,则有助于对第12章(分析xml数据类型)的学习。
本书主要内容
本书将重点介绍对.NET Framework 2.0的System.Data命名空间的编程,该编程可实现ADO.NET 2.0和相关的命名空间,如System.Transactions和System.Xml。本书并不是用于.NET Framework、VS 2005、VBX或VB 2005的新用户指南,而是重点介绍与数据相关的知识。
本书前几章的许多代码和项目示例是直接用自定义SqlConnection、SqlCommand和SqlDataReader对象检索和更新表数据。后面各章的例子使用了由TableAdapters填充的强类型化DataSet,并通过绑定文本框、DataGridView以及下拉列表显示数据。
SQL Server 2000、MSDE 2000、SQL Server 2005或SQL Server 2005 Express (SQLX)可用于本书第I部分到第III部分各代码和示例项目的数据源。通过修改这3部分的大多数例子,可以利用本地OleDbproviders运行Access 2000文件或更高版本的.mdb文件。本书第IV部分各章的T-SQL和VB 2005代码需要SQL Server 2005或SQLX。SQLX没有包括SQL Server 2005的某些新函数,因此读者学习第IV部分时,需要使用SQL Server 2005 Developer Edition或更高的版本。
本书结构
本书共分4大部分,每部分有3章。书中的大部分章节都是假设读者已掌握前面章节介绍的知识。因此,建议读者按顺序学习本书。下面简要介绍本书各部分以及各章的主要内容。
第I部分:ADO.NET 2.0基础知识
第I部分各章将概要介绍ADO.NET 2.0,读者对象是转移到VS 2005的VB6开发人员、或采用VS 2005的新数据关联功能的VBX和VS2003/2004开发人员。
第1章:从ADO移植到ADO.NET。介绍.NET Framework 2.0的System.Data命名空间的成员,并介绍基于COM的ADO编程与ADO.NET 2.0数据对象的VB6和VB 2005代码的相似与不同之处。本章最后将给出一个例子,说明通过拖放的方式生成一个主-明细窗体,且该窗体的数据源是类型化DataSet对象。
第2章:ADO.NET 2.0新功能简介。介绍如何编写新的ADO.NET 2.0运行时对象,如DbProviderFactories和异步SqlCommand对象。本章还介绍如何根据在相关表中更新数据的类型化DataSets创建复杂窗体。
第3章:对以数据为中心的项目采用最佳实践。首先介绍微软对分层最佳实践的推荐标准:模式与实践白皮书、设计指南以及用于数据密集型和面向服务的.NET项目的应用程序代码块库。本章通过实现示例总结出ADO.NET 2.0项目的推荐标准。
第II部分:Windows窗体和控件中的数据绑定
VS 2005的新的ClickOnce开发功能允许用户部署自更新的Windows窗体应用程序,用户能够通过Web站点安装、更新和运行这些应用程序。ClickOnce部署可以
无封面