VisualStudio与SQLServer开发指南——最优架构与实例(第7版)

VisualStudio与SQLServer开发指南——最优架构与实例(第7版)"

作者:沈洁
ISBN:9787302181156
定价:¥89
字数:千字
页数:
出版时间:2008.09.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

Hitchhiker’s Guide系列丛书有哪些特别之处?也许了解一点过往情况有助于弄清这个问题。在20世纪80年代,我为Microsoft University(MSU)工作,主要工作内容是编撰培训材料和进行培训授课。不过,当时的技术主题(例如,OS/2和Quick Basic)现在已经过时了。当Microsoft与Sybase合作开发针对OS/2的SQL Server时,MSU和我被雇来为开发人员建立培训课程,内容包括:关系数据库设计、TSQL编程、DBLibrary编程以及其他相关主题。我负责管理并指导培训者。该课程持续了差不多5年时间—— 每周授课3~5天,每月授课三周。在这一过程中,所有人都对SQL Server有了更全面的了解和实践。

当MSU结束之后,我编写了首本Hitchhiker’s Guide: Hitchhiker’s Guide to VBSQL。这本书的标题与Douglas Adam的书毫无关系—— 他的书带有向导性质(与Europe on $5 a Day类似),主要针对利用Visual Basic开发SQL Server前端应用的人员。首本Hitchhiker’s Guide也帮助我获得了在Visual Basic文档小组担任创作者的工作机会。该书的第一版并没有对Visual Basic(1.0)、DBLibrary、SQL Server以及它们之间的内部关联机制作详细介绍。很多提示和技术来自我所编写的培训教材以及与SQL Server开发人员、MSU学生的交流。虽然本书包含相当多的技术内容,但我试图通过某些使用得并不恰当的例子将相对枯燥的主题变得幽默易懂。第1版Hitchhiker’s Guide交由Microsoft Press出版,但是Microsoft Press更希望出版与Power Builder有关的书,而不是出版与DBMS(例如SQL Server)有关的书。这种想法实在很奇怪。因此,我自费出版了前三版Hitchhiker’s Guide。这些书在美国的销量非常不错,并且行销海外。我曾将这些书的版权卖给一位香港的朋友,他使这些书在中国也有了很好的销量。遗憾的是,我从版权中并没有获得任何回报。

每个版本的Hitchhiker’s Guide都在上一版的基础上有所发展。随着Visual Basic及SQL Server的发展与成熟,我对它们的理解也在不断扩展。每本Hitchhiker’s Guide都关注于当前最新的Visual Basic与SQL Server的接口与功能,同时,每本Hitchhiker’s Guide也对ODBC、DAO、ODBC Direct及ADO接口作出了明确定义,并说明了利用Visual Basic工具访问这些数据接口的方法。我很喜欢思考这些书是否真正将Microsoft及数据访问小组的注意力转移到使用者所面临的实际问题上。这些使用者包括我的学生、顾客以及经常保持联系的读者。我会把针对公共问题的新方法放在下一版丛书中。这么多年以来,我用很多时间与开发人员团体进行交流,这些交流方式包括会议、新闻组以及培训课程。如果某位读者遇见我并针对数据访问提出了更好的解决方法,那么这个方法很可能会出现在Hitchhiker’s Guide丛书中。

最终,Hitchhiker’s Guide丛书前三版的畅销使得Microsoft Press提出出版第4版的要求。当和出版社达成共识(由我负责所有版本的控制)之后,我同意了Microsoft Press的出版要求。在接下来的几年中,Microsoft Press出版了更新后的第5版和第6版。这些书都至少被翻译成8种语言,包括日语、西班牙语、法语、德语、匈牙利语、意大利语、韩语以及中文。

前言

前    言

  欢迎阅读本书。1998年(距今已有相当长的一段时间),Microsoft Press出版了我所撰写的关于应用程序设计和开发的系列丛书Hitchhiker’s Guide中的一本:Hitchhiker’s Guide to Visual Basic and SQL Server(第6版)。当时,我仍在Microsoft’s Internal Technical Education小组工作。当时,Visual Basic 6.0刚刚开始使用,而SQL Server 7.0即将投入市场。在第6版Hitchhiker’s Guide的引言中,我已经提到了许多重要的变化,包括针对Visual Basic、ADO、SQL Server、连接工具以及技术的显著修改。我当时认为除非彻底改变Visual Basic的编译方式并引入全新的数据访问接口(基于COM的ADO),才能产生根本的技术革新。事实证明,这种想法是错误的。

  今天,考虑到SQL Server和Visual Basic的当前状态,如果仅仅说:在过去7年中发生了许多变化,是很不够的。在我2000年从Microsoft退休之前,Microsoft已经从基于COM的Visual Basic(6.0)转为开发基于全新的.NET架构(这也是Vista操作系统的基础)的Visual Basic .NET。当时,这些变化促使我需要重新编写Hitchhiker’s Guide。但是,直到.NET开发完成,也没能完成这一重要任务,相反,我为APress撰写了两本书,分别是ADO and ADO.NET Examples and Best Practices for Visual Basic Programmers(主要针对从Visual Basic 6.0转型到Visual Basic .NET的开发人员)以及ADO.NET Examples and Best Practices for C# Programmers(与Peter Blackburn合著,是前一本书的C#版本)。这两本以ADO为主要内容的书都没有真正强调前一版Hitchhiker’s Guide中所提到的体系结构的许多基本概念和基本技术。

  后来,Peter Blackburn加入了写书的工作,他对这两本Apress书投入市场起了很大的作用。Peter说服我针对SQL Server Reporting Services(这也是他最喜欢的专题)撰写一本更专业的图书。由于下一版的Visual Studio(Whidbey)当时尚未启动,因此,这个想法是一个很好的主意。我们的目标是在三个月内写出一本200页的书。事实上,这本书花费了一年多的时间。不过,780页的Hitchhiker’s Guide to SQL Server 2000 Reporting Services (Addison-Wesley)一书已经出版,该书也是SQL Server Reporting Services方面的权威读本之一。Peter为本书做了大量的研究与初期工作,并提供了重要的技术指导(非常感谢他给予技术方面支持)与逻辑支持。

  1. 本书要点

  Hitchhiker’s Guide系列丛书有哪些特别之处?也许了解一点过往情况有助于弄清这个问题。在20世纪80年代,我为Microsoft University(MSU)工作,主要工作内容是编撰培训材料和进行培训授课。不过,当时的技术主题(例如,OS/2和Quick Basic)现在已经过时了。当Microsoft与Sybase合作开发针对OS/2的SQL Server时,MSU和我被雇来为开发人员建立培训课程,内容包括:关系数据库设计、TSQL编程、DBLibrary编程以及其他相关主题。我负责管理并指导培训者。该课程持续了差不多5年时间—— 每周授课3~5天,每月授课三周。在这一过程中,所有人都对SQL Server有了更全面的了解和实践。

  当MSU结束之后,我编写了首本Hitchhiker’s Guide: Hitchhiker’s Guide to VBSQL。这本书的标题与Douglas Adam的书毫无关系—— 他的书带有向导性质(与Europe on $5 a Day类似),主要针对利用Visual Basic开发SQL Server前端应用的人员。首本Hitchhiker’s Guide也帮助我获得了在Visual Basic文档小组担任创作者的工作机会。该书的第一版并没有对Visual Basic(1.0)、DBLibrary、SQL Server以及它们之间的内部关联机制作详细介绍。很多提示和技术来自我所编写的培训教材以及与SQL Server开发人员、MSU学生的交流。虽然本书包含相当多的技术内容,但我试图通过某些使用得并不恰当的例子将相对枯燥的主题变得幽默易懂。第1版Hitchhiker’s Guide交由Microsoft Press出版,但是Microsoft Press更希望出版与Power Builder有关的书,而不是出版与DBMS(例如SQL Server)有关的书。这种想法实在很奇怪。因此,我自费出版了前三版Hitchhiker’s Guide。这些书在美国的销量非常不错,并且行销海外。我曾将这些书的版权卖给一位香港的朋友,他使这些书在中国也有了很好的销量。遗憾的是,我从版权中并没有获得任何回报。

  每个版本的Hitchhiker’s Guide都在上一版的基础上有所发展。随着Visual Basic及SQL Server的发展与成熟,我对它们的理解也在不断扩展。每本Hitchhiker’s Guide都关注于当前最新的Visual Basic与SQL Server的接口与功能,同时,每本Hitchhiker’s Guide也对ODBC、DAO、ODBC Direct及ADO接口作出了明确定义,并说明了利用Visual Basic工具访问这些数据接口的方法。我很喜欢思考这些书是否真正将Microsoft及数据访问小组的注意力转移到使用者所面临的实际问题上。这些使用者包括我的学生、顾客以及经常保持联系的读者。我会把针对公共问题的新方法放在下一版丛书中。这么多年以来,我用很多时间与开发人员团体进行交流,这些交流方式包括会议、新闻组以及培训课程。如果某位读者遇见我并针对数据访问提出了更好的解决方法,那么这个方法很可能会出现在Hitchhiker’s Guide丛书中。

  最终,Hitchhiker’s Guide丛书前三版的畅销使得Microsoft Press提出出版第4版的要求。当和出版社达成共识(由我负责所有版本的控制)之后,我同意了Microsoft Press的出版要求。在接下来的几年中,Microsoft Press出版了更新后的第5版和第6版。这些书都至少被翻译成8种语言,包括日语、西班牙语、法语、德语、匈牙利语、意大利语、韩语以及中文。

  2.本书范围

  Hitchhiker’s Guide to Visual Studio and SQL Server(第7版)的覆盖范围很广,包括Visual Studio、SQL Server、Visual Studio与SQL Server的交互方式,以及开发人员利用这些工具和引擎开发专业应用程序的方法。如果您从本章的介绍中无法获得上述信息,那么在稍后的章节将对它们作专门介绍。在Microsoft University工作期间,我与开发人员及其他人员保持了将近20年的联系,并积累了文档中无法找到的许多信息。当MSU结束之后,我转到Visual Basic文档小组工作。在那里,我有机会接触到Visual Basic文档,但却无法接触到SQL Server文档。这是由文档的专业化所造成的。几乎所有的数据库后端都面临这样的问题。由于我所撰写的所有图书都涵盖了编程语言(Visual Basic)和不同版本的SQL Server,从而弥补了二者之间的鸿沟。

  与前几版相比,本书以一种更宽广的视角来看待数据访问的开发问题。这是由于Visual Basic .NET与前面几版所讨论的Visual Basic并不相同。因此,本书的标题是Hitchhiker’s Guide to Visual Studio and SQL Server。目前,RAD开发不仅与Visual Studio有关,也与所采用的开发语言有关。Visual Studio可以为选定的开发语言自动生成大量的代码,并提供很多工具、向导、控件、类以及接口。这些内容对所有语言都是通用的。因此,本书着重讨论了如何利用Visual Studio工具集创建专业化的应用程序,包括它的适用场合及不适用场合。

  本书还介绍了全新版本的SQL Server。开发人员能够通过Visual Basic .NET或者C#编写Server端的可执行程序。这意味着可以利用Visual Studio和开发人员所熟悉的CLR语言编写存储过程、函数、触发器、用户自定义类型以及聚集函数。本书中的很多篇幅讨论了设计和实现上述内容的过程与时机。这对前面版本的Hitchhiker’s Guide进行了扩充。整本书主要关注的是如何与SQL Server进行连接和运行查询,而对Oracle、DB2或者JET的相关内容则基本没有涉及。当然,本书中所描述的基本原则和实例完全可以应用到其他的DBMS平台上。很多读过前几版本的Hitchhiker’s Guide的开发人员已经发现了这一点。

  无论如何,我不希望开发人员购买本书的目的仅仅是因为封面上的Visual Basic或者C#。虽然本书的大部分实例用Visual Basic .NET编写,但是绝大部分内容既适用于Visual Basic .NET,也适用于C#。我曾经打算同时提供Visual Basic .NET和C#的实例,但由于时间和精力有限,放弃了这一想法。大多数C#开发人员可以很容易地将Visual Basic .NET代码转换为C#代码。但是,对于部分Visual Basic .NET开发人员(尤其是从Visual Basic 6.0转型到Visual Basic .NET的开发人员)来说,同样的转换却并不简单。由于本书的内容适用于SQL Server 2000及以上版本(包括SQL Server 2005及其服务包),因此书名中没有提到SQL Server的版本信息。既然Microsoft提出每年都会更新产品(每次诉讼后也会更新),因此我将尽力保证书名(以及内容)与产品更新一致。

  3.保持更新

  在我所撰写的所有图书中,我都试图提供当前最新的信息。但是,这是一项非常困难的工作。Microsoft在不断地更新、修复、调整已经发行的软件。Microsoft看起来似乎没有针对用户编写有关应用程序方式方面的长期计划。现在所适用的软件很有可能在未来被淘汰。这是由于Microsoft一直强迫开发商(以及用户)购买其最新的软件产品,以此来获得最大利润,因此,这样一种循环过程(发布、修复、报废)将永无止境。似乎永远也没有时间将开发人员需要的所有功能都包含在一个产品中,同样,一旦需求发生变化,似乎也没有足够的时间进行修改(这很遗憾)。

  身为作者,我同样面临困境。目前,我的硬盘里已经有了超过700页的初稿。但是在本书出版以前,这些内容将无人可见。技术内容的有效期是有限的,我们(出版商和我)需要探询新的方法使您更快地读到最新的内容。我所面临的另一个问题是本书的范围。坦白地说,我希望能够将其他相关内容(比如ASP开发问题、安全性问题、部署问题、SQL Trace和配置问题等)包含在本书中。同样,我也希望能够探讨与下一版Visual Studio(Orcas)相关的数据访问新技术(如DLINQ)。对于单独写作的人来说,这是不可能实现的目标。

本书读者对象

  人们经常问我这样的问题:本书在技能和兴趣方面是否符合开发人员的需求,或是否符合多个开发小组的需求。虽然我也希望能够回答:“这本书适用于每个人”,但是正如预期的那样,这种情况不会发生。本书主要适用于以下读者群。

● 软件开发人员、构架师以及经理。这些人负责指定、设计、编码、汇编、测试、部署、支持、更新业务应用程序,而业务应用程序需要管理数据,尤其是SQL Server数据。

● 具有一定Visual Basic 6.0、Visual Basic .NET或者C#经验的开发人员,以及精通其他编程语言,并希望理解这些语言且利用其创建数据访问应用程序的开发人员。

● 希望利用最新版本以及更新版本的Visual Studio和SQL Server功能集的用户。通过阅读这本书,他们可以了解可使用和不可使用的功能,并知道其中的原因。

● 对于咨询师来说,如果他们希望了解如何通过创建快速应用程序来更好地支持SQL Server客户的要求,那么本书也适合他们阅读。

● 在第一次使用SQL Server且希望了解如何最好地利用SQL Server的用户以及具备SQL Server使用经验的用户。

● 如果人们希望了解如何以及何时(这一点更加重要)利用SQL Server 2005 CLR的可执行程序的能力,或者是通过新的Report Viewer控件访问SQL Server Reporting Service,那么这些人也适合阅读本书。

● 学生、教师、培训者以及课程设计人员。如果他们希望获得或者传授有用的业务软件开发技能,那么本书也适合他们阅读。

● 通过阅读本书,每个人都能获得另一种利用Visual Studio和SQL Server开发数据访问应用程序的观点。

● 本书也是为我自己所写。通过写书这种方式,我能够将所获得的经验传递给您。这些经验来自读者、课程参与者以及曾经询问过我的人。

  

  

目录

目    录

第1章  探索应用程序的体系结构 1

1.1  概述 1

1.2  选择正确的体系结构 1

1.3  理解工具集 3

 1.3.1  ADO和ADO.NET的发展

       历程 3

 1.3.2  Jet和ODBC的产生 4

 1.3.3  数据访问对象的产生 5

 1.3.4  OLE DB的产生 5

 1.3.5  ADO.NET的产生 6

1.4  了解应用程序的设计约束 7

 1.4.1  影响设计的因素 8

 1.4.2  在实现之前进行设计 10

1.5  选择正确的数据访问接口 11

 1.5.1  选择正确的数据访问

       提供者 12

 1.5.2  SQL Server Everywhere 12

1.6  选择正确的数据库管理系统 18

 1.6.1  SQL Server开销 18

 1.6.2  SQL Server的安全性 19

 1.6.3  性能 20

 1.6.4  多用户问题 26

 1.6.5  可伸缩性问题 27

 1.6.6  局限性问题 28

 1.6.7  客户端的限制 29

 1.6.8  服务器的限制 30

 1.6.9  维护和管理 30

 1.6.10  管理维护任务 31

 1.6.11  数据恢复的重要性 31

 1.6.12  管理资源 35

1.7  理解基本的数据访问

体系结构 36

 1.7.1  多层设计 36

 1.7.2  建立独立的应用程序 38

 1.7.3  基于ASP Browser的体系

       结构 49

1.7.4  XML Web 服务的

体系结构 50

1.8  小结 50

第2章  SQL Server的工作原理 53

2.1  概述 53

2.2  服务器和版本 53

 2.2.1  SQL Server的并行执行 56

 2.2.2  SQL Server Express Edition

       简介 56

 2.2.3  Workgroup Edition简介 64

2.3  安装SQL Server 64

2.4  运行SQL Server服务 70

 2.4.1  检查SQL Server服务 70

 2.4.2  启动SQL Server服务 72

2.5  浏览SQL Server系统数据库 73

 2.5.1  SQL Server实例 73

 2.5.2  多个实例或多个数据库? 74

 2.5.3  用户和系统数据库 74

 2.5.4  创建用户数据库 76

 2.5.5  管理用户数据库 76

2.6  理解SQL Server的安全系统 77

 2.6.1  SQL Server 2005中的对象 78

 2.6.2  系列问题:SQL Server 2005

       对所有权的说明 81

 

 2.6.3  理解登录、用户名以及

       模式 82

2.7  管理SQL Server的连接 87

 2.7.1  理解数据访问接口的角色 88

 2.7.2  理解协议 88

 2.7.3  打开连接 89

 2.7.4  调试连接 92

 2.7.5  选择连接策略 94

2.8  使用SQL Query Tool 96

2.9  创建SELECT查询 98

 2.9.1  使用表和列的别名 100

 2.9.2  SELECT操作简介 101

 2.9.3  理解WHERE子句 101

 2.9.4  通过参数传递字面值 102

 2.9.5  减少返回的行数 103

 2.9.6  通过WHERE子句执行

       JOIN操作 104

 2.9.7  处理特定类型的查询问题 108

2.10  创建和查询视图 118

2.11  实现业务规则 121

2.11.1  实现具有扩展属性的

 业务规则 122

2.11.2  通过T-SQL规则、约束

 和默认值实现业务规则 127

2.12  User-Defined(别名)类型 129

2.13  实现约束 130

2.14  通过批处理文件和脚本来

 管理数据库和查询 132

2.15  查询优化器和查询计划 133

 2.15.1  查看和调整查询计划 133

 2.15.2  检查客户统计数据和

       改变计划 135

 2.15.3  执行查询计划 138

2.16  理解缓存 138

2.17  执行动作命令 140

 2.17.1  插入新行 141

 2.17.2  更新行 147

2.18  存储过程简介 155

2.19  触发器简介 157

 2.19.1  创建DML触发器 157

 2.19.2  创建DDL触发器 158

2.20  通过事务来保护数据

 完整性 158

2.21  管理功能 159

 2.21.1  附加.MDF数据库文件 159

 2.21.2  设置Auto Close选项 161

 2.21.3  导入和导出数据 161

 2.21.4  备份SQL Server

         数据库 162

2.22  事务日志的使用 163

2.23  小结 163

第3章  关系数据库101 165

3.1  概述 165

3.2  建立牢固的数据库设计基础 165

3.3  理解关系数据库的正规化 167

3.4  创建表、行和列 169

 3.4.1  SQL Server针对关系

       数据库的存储方式 169

 3.4.2  选择正确的数据类型 178

3.5  小结 183

第4章  Visual Studio入门 185

4.1  概述 185

4.2  我的经历 185

4.3  安装正确版本的

 Visual Studio 186

 4.3.1  处理CTP或Beta版本 187

 4.3.2  典型的安装过程 187

 4.3.3  安装MSDN文档 191

4.4  启动Visual Studio 192

4.5  定制Visual Studio 2005 193

 4.5.1  保存和加载自定义

       的配置 195

 4.5.2  创建自定义的项目模板 197

 4.5.3  联机配置或本地帮助 202

4.6  配置服务器(或数据库)

管理器 202

 4.6.1  通过Server Explorer创建

       新的数据库 203

 4.6.2  在代码中创建新的数据库 205

4.7  创建和管理数据库连接 205

4.8  通过Server Explorer管理

数据库对象 212

4.9  通过查询设计器管理查询 222

 4.9.1  熟悉Query Designer 222

 4.9.2  Query Designer窗格 223

 4.9.3  派生表的定义 225

 4.9.4  修改查询类型 225

 4.9.5  Query Designer(查询设计

       器)—— 重述 232

4.10  通过Server Explorer来查看

同义词 233

4.11  通过Server Explorer管理

 类型 234

4.12  使用Server Explorer管理

 汇编 237

4.13  使用Server Explorer管理

 服务器 237

4.14  小结 240

第5章  用Server Explorer管理   

    可执行程序 241

5.1  概述 241

5.2  创建和编辑存储过程 241

 5.2.1  比较SQL Server 2005和

       Visual Studio 2005 242

 5.2.2  进入SQL Server Management 

       Studio Express 243

5.3  创建新存储过程 243

5.4  用Run Selection执行T-SQL 250

5.5  调试存储过程 250

 5.5.1  针对本地实例的T-SQL

       调试 251

 5.5.2  在存储过程中用断点调试 253

5.6  在远程实例上调试存储过程 255

5.7  从代码调试存储过程 258

5.8  使用Server Explorer管理

函数 260

5.9  小结 268

第6章  构建数据源、数据集和表

    适配器 269

6.1  概述 269

6.2  创建YADAI的原因 270

6.3  强类型数据是否重要 271

6.4  什么是数据源 272

6.5  什么是TableAdapter 275

6.6  TableAdapter中缺少什么 276

6.7  创建基于数据库的数据源 277

6.8  配置TableAdapter 283

 6.8.1  添加参数到查询中 289

 6.8.2  选择查询方法进行生成 291

6.9  使用拖放绑定TableAdapter 294

 6.9.1  定制生成的UI 296

 6.9.2  使用SmartTag管理绑定

       控件 297

 6.9.3  绑定到Details 298

 6.9.4  绑定到自定义控件 298

6.10  不通过拖放直接使用

 TableAdapter 299

6.11  在Data Source Designer中

 管理DataTable类 300

 6.11.1  设置DataTable属性 300

 6.11.2  生成的窗体代码 301

6.12  在应用程序间移动数据源 301

6.13  创建Web服务数据源 302

 6.13.1  什么是Web服务 302

 6.13.2  构造一个示例Web

         服务 304

 6.13.3  使用和测试Web服务 310

 6.13.4  在UI中提供Web服务

         数据源 312

6.14  小结 313

第7章  管理数据工具和数据绑定 315

7.1  概述 315

7.2  漫游Visual Studio Toolbox 316

 7.2.1  提供废弃的数据访问控件 317

 7.2.2  找到正确的控件 318

 7.2.3  理解 Tool Tray 319

7.3  使用Dataset Toolbox元素 319

7.4  数据绑定 321

7.5  使用BindingSource 类 326

 7.5.1  使用EndEdit和CancelEdit 

       方法 331

 7.5.2  使用BindingSource类的

       数据绑定 333

7.6  使用BindingNavigator控件 334

7.7  使用DataGridView控件 335

7.8  使用ProgressBar控件 337

7.9  小结 338

第8章  ADO.NET入门 339

8.1  概述 339

8.2  数据访问的挑战 339

8.3  ADO.NET总览 340

8.4  使用Visual Studio Object 

Browser研究ADO.NET 342

 8.4.1  用Class Diagram研究

       ADO.NET 343

 8.4.2  解释名称空间 345

 8.4.3  对类名称的处理 346

 8.4.4  使用简写来寻址类 346

8.5  实例化ADO.NET对象 347

 8.5.1  理解代码的作用域 347

 8.5.2  理解对象实例化 349

 8.5.3  Visual Basic .NET中的

       Using代码块 350

8.6  研究System.Data.SqlClient

名称空间 351

8.7  研究SqlClient名称空间 352

8.8  研究System.Data名称空间 359

 8.8.1  解释System.Data命名

       约定 359

 8.8.2  理解System.Data.DataSet和

       DataTable对象 360

 8.8.3  是否使用JOIN—— 这是个

       问题 370

8.9  小结 371

第9章  建立连接 373

9.1  概述 373

9.2  连接策略—— 包括安全 373

9.3  配置服务器及防火墙 375

9.4  连接策略 380

 9.4.1  实时连接 380

 9.4.2  持久连接 381

 9.4.3  理解MARS及其含义 381

 9.4.4  为连接对象选择正确的

       作用域 382

9.5  建立连接 383

9.6  编写代码创建连接 386

 9.6.1  什么是ConnectionString 386

 9.6.2  用SqlConnectionString

       Builder类创建一个

       ConnectionString 386

 9.6.3  保护ConnectionString 388

 9.6.4  保存ConnectionString 388

 9.6.5  建立Connection对象 389

 9.6.6  设置服务器名称关键字 392

 9.6.7  为实例设置别名 393

 9.6.8  重访问其他关键字 395

 9.6.9  配置连接池关键字的值 396

9.7  理解并管理连接池 397

 9.7.1  监控连接池 404

 9.7.2  防止连接池的溢出 405

9.8  为其他提供者建立

 ConnectionString 406

9.9  使用Visual Studio建立

ConnectionString 408

9.10  (半)自动打开和关闭连接 411

9.11  理解Connection属性 411

9.12  使用Connection方法 413

9.13  处理Connection事件 417

9.14  管理Connection异常 418

 9.14.1  关于异常 419

 9.14.2  理解SqlException类 420

 9.14.3  处理异常 422

9.15  小结 422

第10章  管理SqlCommand对象 423

10.1  概述 423

10.2  创建SqlCommand对象 423

 10.2.1  理解SqlCommand

    属性 424

 10.2.2  理解SqlCommand

    方法 429

 10.2.3  理解SqlCommand支持

    函数 433

10.3  将ad hoc查询集成到应用

 程序中 435

10.4  编码参数查询 440

 10.4.1  插入ad hoc查询 441

 10.4.2  理解SqlParameter

    Collection类 442

 10.4.3  理解SqlParameter类 444

10.5  验证值的有效性 454

 10.5.1  编写代码验证值的

         有效性 455

 10.5.2  处理复杂参数设计

         问题 459

 10.5.3  理解SqLCommand

         事件 462

10.6  执行存储过程 462

 10.6.1  处理OUTPUT、

    INPUT/OUTPUT和

    RETURN值参数 462

 10.6.2  处理行集和OUTPUT

         参数 464

10.7  小结 466

第11章  执行SqlCommand对象 467

11.1  概述 467

11.2  同步执行SqlCommand

 对象 467

11.3  了解SqlDataReader 474

 11.3.1  从流中取回数据 475

 11.3.2  从SqlDataReader流中

         取回元数据 480

 11.3.3  设计最好的

         SqlDataReader 481

11.4  填充数据结构 481

 11.4.1  通过设计进行有效

    填充 482

 11.4.2  如何填充 484

 11.4.3  填充InfoMessage消息 485

 11.4.4  填充OUTPUT和

         RETURN值参数 486

 11.4.5  用DataTable Load方法

         填充 487

 11.4.6  填充附加结果集 488

11.5  异步取回行 491

11.6  异步执行命令 493

 11.6.1  异步SqlCommand函数

    编码 494

 11.6.2  等待戈多或异步操作

    完成 497

11.7  小结 503

第12章  更新管理 505

12.1  概述 505

12.2  使用向导创建更新动作

 命令 505

 12.2.1  CommandBuilder应该

       完成的操作 506

 12.2.2  并发处理—— 更新和

       插入冲突 507

 12.2.3  ADO.NET CommandBuilder

       的工作方式 509

 12.2.4  编码CommandBuilder 510

12.3  替代更新:使用TableAdapter

 配置向导 512

 12.3.1  使用TableAdapter更新 512

 12.3.2  管理生成的参数 516

12.4  用服务器端逻辑进行复杂

 的更新 518

 12.4.1  使用事件执行自己的

    更新逻辑 518

 12.4.2  UpdateEvents的示例 520

 12.4.3  管理批模式更新 525

12.5  通过设计或冲突管理并发 527

12.6  小结 532

第13章  管理SQL Server CLR 

         可执行程序 535

13.1  概述 535

 13.1.1  Visual Basic .NET开发

    人员的作用 535

 13.1.2  Visual Studio的作用 536

13.2  发展CLR可执行程序技术 536

13.3  CLR可执行程序适用的

 场合 538

 13.3.1  可以或应该构建的可

       执行程序类型 539

 13.3.2  预览示例 540

13.4  设计CLR可执行程序 542

13.5  构建第一个CLR可执行

 程序 542

13.6  构建并部署一个CLR 

 可执行程序 548

13.6.1  准备部署一个CLR

可执行函数 548

 13.6.2  部署过程 552

13.7  建立测试环境 554

 13.7.1  在T-SQL中寻址CLR

    函数 555

 13.7.2  评价CLR可执行程序

    的性能 558

 13.7.3  创建表值函数 560

13.8  在CLR可执行程序中处理

ADO.NET 563

 13.8.1  使用上下文连接 563

 13.8.2  管理事务 565

 13.8.3  查询数据 565

 13.8.4  返回数据和消息 565

13.9  编码CLR存储过程 565

 13.9.1  构建CLR存储过程的

    示例 567

 13.9.2  测试CLR存储过程 573

 13.9.3  研究余下的CountWords

    示例 574

 13.9.4  评价CLR和T-SQL的

    性能 575

13.10  实现基本的用户定义类型

 CLR可执行程序 577

 13.10.1  编码CLR UDT 578

 13.10.2  调试CLR UDT 585

 13.10.3  使用SELECT查询

         UDT数据 587

 13.10.4  为提高性能调整

         自己的UDT 588

 13.10.5  引用并更新UDT值 589

 13.10.6  单步调试UDT代码 591

 13.10.7  验证自己的UDT

         数据 593

 13.10.8  实现UDT方法 594

13.11  实现高级CLR用户定义

 的类型 595

 13.11.1  用户自定义串行化 596

 13.11.2  构建iTypCurrencyV2 

         UDT 597

 13.11.3  测试typICurrencyV2 

         UDT 602

13.12  访问CLR UDT的其他

   方式 602

 13.12.1  引用UDT 603

 13.12.2  实例化UDT变量 604

 13.12.3  浏览LoanRequest

         代码 605

13.13  实现CLR聚集可执行

 程序 606

 13.13.1  什么是聚集 607

 13.13.2  CLR聚集示例 607

 13.13.3  测试CLR聚集 612

13.14  实现CLR触发器 612

 13.14.1  构建CLR触发器 613

 13.14.2  访问INSERTED和

         DELETED伪表 614

 13.14.3  处理更新 615

13.15  高级调试 616

13.16  UDT安全和IP安全 617

 13.16.1  提供自己的智能

         属性 619

 13.16.2  保护自己的智能

         属性 619

13.17  小结 620

第14章  创建并管理报表 621

14.1  概述 621

14.2  理解报表服务和RDL 622

14.3  Visual Studio 2005报表 626

  

  

14.4  Visual Studio 2005报表

 工具的内容 627

14.5  构建自己的第一个报表 628

 14.5.1  创建报表数据源 629

 14.5.2  展示报表 631

 14.5.3  配置ReportViewer控件 634

 14.5.4  测试报表 635

 14.5.5  完善报表 636

14.6  深入研究ReportViewer 640

 14.6.1  ReportViewer属性 640

 14.6.2  ReportViewer的方法 642

 14.6.3  ReportViewer事件 642

 14.6.4  LocalReport类 643

 14.6.5  ServerReport类 644

14.7  管理服务器报表 644

 14.7.1  呈现服务器报表 645

 14.7.2  管理服务器报表参数 646

 14.7.3  重新设置参数值 649

 14.7.4  有趣的ServerReport

    参数 649

 14.7.5  有趣的ServerReport 

       方法和函数 650

14.8  管理参数 650

 14.8.1  捕获参数 651

 14.8.2  报表参数 656

14.9  高级报表技术 658

 14.9.1  管理单击报表 658

 14.9.2  使用SubReport

    报表项 662

 14.9.3  RDLC的组成 664

 14.9.4  将RDL转换为RDLC 665

14.10  实现Matrix报表 666

 14.10.1  报表的数据考虑 666

 14.10.2  初始选择查询 667

 14.10.3  数据分组 668

 14.10.4  绑定Matrix报表 670

14.11  小结 679

第15章  本书总结 681

附录I  安装示例和测试数据库 683

I.1  安装示例 683

I.2  安装示例数据库 683

 I.2.1  附加示例数据库 684

 I.2.2  为实例创建别名 685

I.3  特定章节的配置问题 686

I.3.1  第8章:ADO.NET入门 686

I.3.2  第13章:管理CLR可执行

   文件 686

I.4  小结 687

附录II  重新安装DACW和Visual 

       Studio中没有的其他功能 689

附录III  监控SQL Server 691

III.1  用SQL Profiler监控

 SQL Server 691

 III.1.1  添加过滤条件 691

 III.1.2  配置SQL Profiler 692

 III.1.3  开始追踪 694

 III.1.4  评估追踪 695

 III.1.5  一些SQL Profiler提示 695

III.2  用性能计数器监控SQL

 Server和ADO.NET 696

III.3  小结 700

附录IV  创建并管理服务器端游标 701

IV.1  服务器端游标重要的原因 701

IV.2  ADO.NET如何实现游标 702

IV.3  如何管理服务器端游标 702

IV.4  ADO.NET如何创建服务器

 端游标 704

 IV.4.1  打开、关闭和重新打开

         连接 704

 IV.4.2  创建游标 704

IV.5  从游标取回数据 705

IV.6  更新服务器端游标 708

IV.7  小结 708

  

  

  

  

  

  

  

  

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个