
Hitchhiker’s guide to Visual Studio and SQL Server:best practice architectures and examples
副标题:无
作 者:(美)William R. Vaughn,(美)Peter Blackburn著;沈洁,杨华译
分类号:
ISBN:9787302181156
微信扫一扫,移动浏览光盘
简介
《Visual Studio与SQL Server开发指南:最优架构与实例(第7版)》主要内容: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。这《Visual Studio与SQL Server开发指南——最优架构与实例》的标题与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学生的交流。虽然《Visual Studio与SQL Server开发指南——最优架构与实例》包含相当多的技术内容,但我试图通过某些使用得并不恰当的例子将相对枯燥的主题变得幽默易懂。第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种语言,包括日语、西班牙语、法语、德语、匈牙利语、意大利语、韩语以及中文。
目录
第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 ManagementStudio 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 ObjectBrowser研究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 用SqlConnectionStringBuilder类创建一个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 构建iTypCurrencyV2UDT 597
13.11.3 测试typICurrencyV2UDT 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和VisualStudio中没有的其他功能 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 用性能计数器监控SQLServer和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
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 ManagementStudio 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 ObjectBrowser研究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 用SqlConnectionStringBuilder类创建一个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 构建iTypCurrencyV2UDT 597
13.11.3 测试typICurrencyV2UDT 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和VisualStudio中没有的其他功能 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 用性能计数器监控SQLServer和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
Hitchhiker’s guide to Visual Studio and SQL Server:best practice architectures and examples
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!
