第1章 SQL Server 2005开发概述 1
1.1 SQL Server 2005数据库管理与维护 1
1.1.1 安装SQL Server 2005 1
1.1.2 使用SQL Server Configuration Manager 2
1.1.3 使用SQL Server Management Studio 3
1.1.4 创建、修改和删除数据库 5
程序清单1-1 使用SQL语句创建数据库BookStore 5
1.1.5 管理数据表格 6
程序清单1-2 创建数据表格Book 7
1.1.6 管理数据视图 11
程序清单1-3 创建数据视图V BookSell 11
1.1.7 管理存储过程、函数和触发器 11
程序清单1-4 创建存储过程GetSellItemsByPress 12
程序清单1-5 修改存储过程GetSellItemsByPress 12
程序清单1-6 创建函数CalcSum 13
程序清单1-7 函数SearchSellItem 13
程序清单1-8 存储过程ResetSellItemSum 13
程序清单1-9 创建触发器OnDelBook 14
程序清单1-10 创建触发器OnUpdateBook 14
程序清单1-11 触发器OnDropTable 14
1.1.8 基础数据维护 15
1.1.9 从SQL Server 2000/7.0快速升级到SQL Server 2005 18
1.2 使用ADO.NET开发SQL Server应用程序 19
1.2.1 ADO.NET概述 19
1.2.2 使用DataTable对象 20
1.2.3 使用DataSet对象 22
1.2.4 使用SqlConnection对象 25
1.2.5 使用SqlCommand对象 28
1.2.6 使用SqlDataReader对象 31
1.2.7 使用SqlDataAdapter对象 33
第2章 Windows数据库应用案例:书店零售管理系统 37
2.1 系统概述 37
2.2 数据库设计 38
2.2.1 数据表格设计 38
2.2.2 数据视图设计 39
程序清单2-1 创建数据视图V BookSell 39
2.2.3 存储过程和触发器设计 40
程序清单2-2 创建存储过程P GetSellDetail 40
程序清单2-3 创建触发器T NewSellItem 40
程序清单2-4 创建触发器T NewSell 41
程序清单2-5 创建触发器T UpdateScore 41
2.3 Windows应用程序开发 42
2.3.1 添加数据源 42
2.3.2 主控界面设计 44
2.3.3 图书管理 45
2.3.4 会员管理 50
2.3.5 零售管理 55
2.3.6 统计查询 62
第3章 ASP.NET数据库应用案例:网上软件商城 68
3.1 系统概述 68
3.2 数据库设计 69
3.2.1 数据表格设计 69
3.2.2 存储过程设计 70
程序清单3-1 存储过程GetCategories 70
程序清单3-2 存储过程GetProduct 71
程序清单3-3 存储过程SearchProductByCategory 71
程序清单3-4 存储过程SearchProductByName 71
程序清单3-5 存储过程SearchProduct 71
程序清单3-6 存储过程GetOrder 71
程序清单3-7 存储过程GetOrderItems 72
程序清单3-8 存储过程NewOrder 72
程序清单3-9 存储过程NewOrderItem 72
程序清单3-10 存储过程CheckoutOrder 72
程序清单3-11 存储过程SendoutOrder 73
程序清单3-12 存储过程GetPopularProducts 73
3.3 Web服务开发 73
3.3.1 基础类 73
程序清单3-13 商品类Product 73
程序清单3-14 订单类Order 75
3.3.2 Web服务类 76
程序清单3-15 Web服务类SoftMarketSrv 77
3.4 Web应用程序开发 82
3.4.1 创建母版页 82
程序清单3-16 用户控件LoginUserControl.ascx 82
程序清单3-17 母版页MasterPage.master 84
程序清单3-18 母版页程序代码MasterPage.master.cs 85
3.4.2 使用ASP.NET成员资格 85
程序清单3-19 存储过程GetLastLoginTime 88
程序清单3-20 存储过程GetContactInformation 88
程序清单3-21 存储过程SaveContactInformation 89
3.4.3 用户管理 89
3.4.4 商品信息管理 92
程序清单3-22 “热销商品”页面PopularProduct.aspx 92
程序清单3-23 “热销商品”页面程序代码PopularProduct.aspx.cs 93
程序清单3-24 “商品详细信息”页面ProductDetail.aspx 94
程序清单3-25 “商品详细信息”页面程序代码ProductDetail.aspx.cs 94
程序清单3-26 “搜索商品”页面SearchProduct.aspx 95
程序清单3-27 “搜索商品”页面程序代码SearchProduct.aspx.cs 96
程序清单3-28 “分类浏览”页面CategoryProduct.aspx 97
3.4.5 购物和订单管理 100
程序清单3-29 “添加到购物车”页面程序代码AddToCart.aspx.cs 100
程序清单3-30 “我的购物车”页面MyCart.aspx 101
程序清单3-31 “我的购物车”页面程序代码MyCart.aspx.cs 102
程序清单3-32 “结算”页面程序代码Checkout.aspx.cs 106
3.4.6 网站设置 109
第4章 SQLCLR编程技术 111
4.1 SQLCLR编程概述 111
4.1.1 为SQL Server启用CLR集成 111
4.1.2 创建SQL Server项目 112
4.1.3 SQLCLR的执行权限 113
4.2 SQLCLR存储过程 114
4.2.1 使用Visual Studio创建SQLCLR存储过程 114
程序清单4-1 SQLCLR存储过程GetPresentTime 115
4.2.2 于动创建SQLCLR存储过程 117
4.2.3 在存储过程中使用ADO.NET对象 117
程序清单4-2 SQLCLR存储过程GetTopProduct 118
程序清单4-3 SQLCLR存储过程CopyProducts 118
程序清单4-4 SQLCLR存储过程SetProductPicture 119
4.2.4 返回记录集 120
程序清单4-5 SQLCLR存储过程GetProducts 120
程序清单4-6 SQLCLR存储过程GetTopProductInfo 120
程序清单4-7 SQLCLR存储过程GetTopProductInfos 121
4.3 SQLCLR函数 123
4.3.1 自定义标量函数 123
程序清单4-8 SQLCLR函数FRate 123
程序清单4-9 SQLCLR函数FCurRate 124
4.3.2 自定义表值函数 124
程序清单4-10 SQLCLR表值函数SplitSentence 125
程序清单4-11 SQLCLR表值函数FPrices 126
4.4 SQLCLR触发器 127
4.4.1 创建SQLCLR触发器 127
程序清单4-12 SQLCLR触发器OnDeleteOrder 127
程序清单4-13 SQLCLR触发器OnInsertProduct 128
程序清单4-14 SQLCLR触发器OnDropTable 128
4.4.2 使用SqlTriggerContext对象 129
程序清单4-15 SQLCLR触发器OnAlterTable 129
程序清单4-16 SQLCLR触发器OnUpdateProduct 130
4.5 自定义数据类型 130
程序清单4-17 C#结构CAngle 130
4.6 自定义聚合函数 135
程序清单4-18 SQLCLR聚合函数CAngleSum 135
程序清单4-19 SQLCLR聚合函数CAngleMax 136
程序清单4-20 SQLCLR聚合函数CAngleMin 137
4.7 何时使用SQLCLR 138
4.7.1 功能 138
4.7.2 性能 138
第5章 SQLCLR应用案例:计算机考试管理系统 140
5.1 系统概述 140
5.2 数据库设计 141
5.2.1 数据表格设计 141
5.2.2 UDT设计 141
程序清单5-1 用户自定义类型MultiAnswer.cs 142
5.2.3 函数设计 144
程序清单5-2 SQLCLR函数EvalTestDifficulty 144
程序清单5-3 SQLCLR函数ScoreTestPaper 145
5.2.4 存储过程设计 146
程序清单5-4 存储过程SubmitTestPaper 146
程序清单5-5 SQLCLR存储过程GetQuestionInfo 146
程序清单5-6 SQLCLR存储过程GetTestInfo 147
程序清单5-7 SQLCLR存储过程GenQuestion 148
程序清单5-8 SQLCLR存储过程GenTest 148
程序清单5-9 SQLCLR存储过程GetTest 149
程序清单5-10 SQLCLR存储过程OutputScore 150
程序清单5-11 SQLCLR存储过程OutputScores 152
5.2.5 触发器设计 152
程序清单5-12 SQLCLR触发器OnChangeSQuestionAnswer 152
程序清单5-13 SQLCLR触发器OnChangeMQuestionAnswer 153
5.3 Windows应用程序开发 154
5.3.1 模拟测试 154
程序清单5-14 模拟测试窗体RandTestForm.cs 155
5.3.2 考试管理 157
程序清单5-15 测试准备窗体PreTestForm.cs 158
程序清单5-16 考试窗体TestForm.cs 161
5.3.3 成绩管理 166
程序清单5-17 模拟测试窗体RandTestForm.cs 167
5.3.4 题库管理 169
5.3.5 程序配置、主控界面和登录界面 170
程序清单5-18 程序主窗体MainForm.cs 170
程序清单5-19 登录窗体LoginForm.cs 171
5.4 Web 应用程序开发 172
5.4.1 考试准备页面 172
程序清单5-20 考试准备页面PreTest.aspx.cs 172
5.4.2 考试母版页 174
程序清单5-21 考试母版页Test.master.cs 174
5.4.3 考试页面 174
程序清单5-22 考试页面Test.aspx.cs 174
5.4.4 考试结束页面 176
程序清单5-23 考试结束页面EndTest.aspx.cs 177
第6章 XML数据访问技术 179
6.1 XML基础 179
6.1.1 XML文档 179
程序清单6-1 Train.xml文档 179
程序清单6-2 Trainl.xml文档 180
程序清单6-3 TrainTicket.xml文档 180
程序清单6-4 TrainTimetable.xml文档 181
6.1.2 XML数据验证 181
程序清单6-5 Trainl.xsd文件 181
6.1.3 XPath查询和XSL转换 182
程序清单6-6 TrainTimetable.xsl文档 184
6.1.4 .NET XML编程概述 185
程序清单6-7 使用XmlWriter对象 185
程序清单6-8 使用XmlReader对象 185
程序清单6-9 使用XmlDocument象 187
程序清单6-10 使用XslCompiledTransform象 187
6.2 XML与关系型数据 187
6.2.1 与DataSet数据同步 187
程序清单6-11 读取XML文件至DataSet 188
程序清单6-12 将DataSet数据输出到XML文件 188
程序清单6-13 Transportation.xml文档 188
程序清单6-14 读取XML文档至多个数据表 189
程序清单6-15 将包含多个数据表的DataSet输出到XML文档 189
程序清单6-16 优化读取XML文档至多个数据表 189
6.2.2 FOR XML查询 190
程序清单6-17 通过ADO .NET执行FOR XML查询 193
6.2.3 OpenXML函数 194
程序清单6-18 存储过程AddTrainsFromXml 195
程序清单6-19 使用OpenXML函数将XML文档导入数据表格 195
6.3 XML数据类型 196
6.3.1 XML类型列 196
6.3.2 关联XML模式 198
程序清单6-20 在服务器上创建XML架构StationsSchema 198
6.3.3 XML索引 199
6.3.4 使用XQuery 200
6.3.5 在ADO.NET中操纵XML类型 202
6.4 显示XML数据 209
6.4.1 使用XML控件 209
6.4.2 使用XmlDataSource控件 209
程序清单6-21 在XmlDataSource控件中内嵌XML数据和XSL样式页 210
程序清单6-22 车次查询页面程序代码QueryNumber.aspx.cs 211
程序清单6-23 车次查询页面QueryNumber.aspx 212
6.4.3 自定义数据显示 213
程序清单6-24 到站查询页面程序代码QueryStation.aspx.cs 213
第7章 XML数据访问案例:学术会议管理系统 216
7.1 系统功能概述 216
7.2 数据库设计 217
程序清单7-1 Category.xml文件 218
7.3 用户管理 219
7.3.1 服务器存储过程设计 219
程序清单7-2 存储过程NewAuthor 219
程序清单7-3 存储过程ExistAuthorName 219
程序清单7-4 存储过程ExistAuthorEmail 219
程序清单7-5 存储过程AuthorLogin 220
程序清单7-6 存储过程NewReviewer 220
程序清单7-7 存储过程ExistReviewerName 220
程序清单7-8 存储过程ExistReviewerEmail 221
程序清单7-9 存储过程ReviewerLogin 221
程序清单7-10 存储过程ProgrammerLogin 221
7.3.2 类库中的用户管理功能 221
程序清单7-11 AuthorInfo.cs中的用户管理静态方法 221
程序清单7-12 ReviewerInfo.cs中的用户管理静态方法 223
程序清单7-13 ProgrammerInfo.cs中的用户管理静态方法 225
7.3.3 登录和注册页面 226
程序清单7-14 登录页面Login.aspx 226
程序清单7-15 登录页面代码Login.aspx.cs 227
程序清单7-16 作者注册页面AuthorRegistration.aspx 229
程序清单7-17 作者注册页面代码AuthorRegistration.aspx.cs 230
程序清单7-18 添加审稿人页面AddReviewer.aspx 230
程序清单7-19 添加审稿人页面代码AddReviewer.aspx.cs 232
程序清单7-20 注销页面代码Logout.aspx.cs 233
7.4 作者管理 233
7.4.1 存储过程设计 233
程序清单7-21 存储过程NewPaper 234
程序清单7-22 存储过程RevisePaper 234
程序清单7-23 存储过程GetPapersByAuthor 234
程序清单7-24 存储过程GetAuthorInfo 234
程序清单7-25 存储过程GetPaperInfo 235
程序清单7-26 存储过程GetComments 235
7.4.2 组件开发 235
程序清单7-27 组件类AuthorInfo.cs 235
程序清单7-28 组件类PaperInfo.cs 238
7.4.3 Web页面开发 241
程序清单7-29 作者母版MasterPage.master 242
程序清单7-30 作者汇总页面代码AuthorSummary.aspx.cs 243
程序清单7-31 样式页PapersByAuthor.xsl 244
程序清单7-32 论文提交页面代码Submission.aspx.cs 246
程序清单7-33 上传文件页面Upload.aspx.cs 252
程序清单7-34 评审结果页面Result.aspx 253
程序清单7-35 样式页PaperComments.xsl 254
7.5 审稿人管理 255
7.5.1 存储过程设计 255
程序清单7-36 存储过程IsReviewerActive 256
程序清单7-37 存储过程ReviewerActive 256
程序清单7-38 存储过程GetPapersByReviewer 256
程序清单7-39 存储过程ReviewPaper 256
程序清单7-40 存储过程GetReviewerInfo 257
7.5.2 组件开发 257
程序清单7-41 组件类ReviewerInfo.cs 257
7.5.3 Web页面开发 262
程序清单7-42 审稿人母版页ReviewerActive.aspx.cs 262
程序清单7-43 审稿人汇总页ReviewerSummary.aspx 263
程序清单7-44 审稿人汇总页面代码ReviewerSummary.aspx.cs 263
程序清单7-45 评审页面 ReviewPaper.aspx.cs 264
7.6 程序委员管理 265
7.6.1 存储过程设计 265
程序清单7-46 存储过程GetReviewers 266
程序清单7-47 存储过程GetPapersByStatus 266
程序清单7-48 存储过程GetAuthorEmail 266
程序清单7-49 存储过程GetReviewerEmail 266
程序清单7-50 存储过程AssignPaper 267
程序清单7-51 存储过程AcceptPaper 267
程序清单7-52 存储过程RejectPaper 267
7.6.2 组件开发 267
程序清单7-53 组件类ReviewerInfo.cs(续) 267
程序清单7-54 组件类PaperInfo.cs(续) 268
7.6.3 Web页面开发 270
程序清单7-55 程序委员母版页MasterPagePro.master 270
程序清单7-56 查询待审论文页面ViewUnassignedPapers.aspx 271
程序清单7-57 查询待审论文页面代码ViewUnassignedPapers.aspx.cs 272
程序清单7-58 安排论文评审页面代码AssignPaper.aspx.cs 274
程序清单7-59 论文录用决定页面代码DecidePaper.aspx.cs 276
第8章 SQL Server Compact Edition开发技术 278
8.1 第一个SQL Server移动应用程序 279
8.1.1 创建智能设备应用程序项目 279
8.1.2 设置SQL Compact数据源 280
8.1.3 实现数据访问 282
8.1.4 生成智能设备应用程序 284
8.2 SQL Compact本地数据存取 285
8.2.1 建立数据连接 286
8.2.2 执行数据命令 286
8.2.3 使用数据适配器 288
8.2.4 使用SqlCeResultSet对象 288
8.2.5 数据绑定与编辑 290
8.3 SQL Compact远程数据存取 294
8.3.1 合并复制 294
8.3.2 RDA远程数据访问 300
程序清单8-1 存储过程NewOrder 302
8.3.3 使用Web Service 302
程序清单8-2 存储过程NewOrderItem 303
程序清单8-3 存储过程CalcOrder 303
程序清单8-4 Web Service类DishService 303
8.4 SQL Compact数据应用开发策略 306
8.4.1 数据库和应用程序配置 306
8.4.2 远程数据连接 307
8.4.3 本地数据访问 307
8.4.4 其他方面 307
第9章 SQL Server Compact应用案例:移动库存管理系统 309
9.1 系统概述 309
9.2 数据库设计 310
9.2.1 数据表格和视图设计 310
程序清单9-1 创建数据视图StockView 311
9.2.2 存储过程和函数设计 312
程序清单9-2 创建存储过程GetStockItems 312
程序清单9-3 创建存储过程AddStockltem 312
程序清单9-4 创建存储过程SubtractStockItem 313
程序清单9-5 创建存储过程GetInStockNumbers 313
程序清单9-6 创建存储过程GetInStockItems 313
程序清单9-7 创建存储过程GetOutStockNumbers 314
程序清单9-8 创建存储过程GetOutStockItems 314
程序清单9-9 创建存储过程CompleteInStock 314
程序清单9-10 创建存储过程CompleteOutStock 315
程序清单9-11 创建函数CountInStockItems 315
程序清单9-12 创建函数CountOutStockItems 315
9.3 Web服务开发 315
程序清单9-13 Web服务StockService.cs 316
9.4 用户管理 318
9.4.1 服务器端用户登录 318
程序清单9-14 服务器端登录窗体代码LoginForm.cs 318
9.4.2 智能设备端用户登录 319
程序清单9-15 智能设备端登录窗体代码LoginForm.cs 320
9.5 库存管理 321
9.5.1 服务器端程序主界面 321
9.5.2 智能设备端程序主界面 323
9.5.3 服务器端库存查询 326
程序清单9-16 服务器端“库存查询”窗体代码QueryStockForm.cs 327
9.5.4 智能设备端库存查询 329
程序清单9-17 智能设备端“库存查询”窗体代码QueryStockForm.cs 329
9.6 智能设备数据同步 331
9.7 出入库管理 333
9.7.1 生成入库单 333
9.7.2 终端入库操作 338
9.7.3 生成出库单 343
程序清单9-18 “生成出库单”窗体代码OutStockForm.cs 344
9.7.4 终端出库操作 348
程序清单9-19 “生成出库单”窗体代码OutStockForm.cs 349
第10章 SQL Server数据挖掘技术 354
10.1 SQL Server数据挖掘实践 355
10.1.1 创建Analysis Services项目 355
10.1.2 创建挖掘结构和挖掘模型 358
10.1.3 处理和查看挖掘模型 360
10.1.4 进行挖掘模型预测 363
10.1.5 管理Analysis Services 364
10.2 OLE DB for Data Mining和DMX 365
10.2.1 OLE DB for Data Mining概述 365
10.2.2 DMX数据定义语句 366
程序清单10-1 创建挖掘结构Graduate 367
程序清单10-2 创建包含嵌套表的挖掘结构Graduatel 367
程序清单10-3 向挖掘结构Graduate中添加挖掘模型GraduateEmploy 367
程序清单10-4 创建挖掘模型GraduateEmploy及其关联挖掘结构 368
10.2.3 DMX数据操纵语句 369
程序清单10-5 训练模型GraduateEmploy 369
程序清单10-6 训练包含嵌套表的模型GraduateEmployl 370
程序清单10-7 对事例表进行模型预测 372
程序清单10-8 创建单个事例并进行模型预测 372
程序清单10-9 使用PredictHistogram预测函数 373
10.3 数据挖掘算法简介 373
10.3.1 决策树算法 373
10.3.2 线性回归算法 376
10.3.3 时序算法 376
10.3.4 贝叶斯算法 377
10.3.5 关联规则算法 379
10.3.6 聚类分析算法 379
10.3.7 顺序分析算法 380
10.3.8 神经网络算法 382
10.3.9 逻辑回归算法 383
10.4 客户端数据挖掘应用开发 383
10.4.1 ADOMD.NET数据访问对象 383
10.4.2 挖掘结构和挖掘模型对象 386
程序清单10-10 Windows窗体AlGrithmForm.cs 387
第11章 SQL Server数据挖掘应用案例:图书销售智能分析 390
11.1 系统概述 390
11.2 Analysis Services项目开发 391
11.2.1 数据源设计 391
程序清单11-1 创建数据视图V_Book 392
程序清单11-2 创建数据视图V_BookSell 392
程序清单11-3 创建数据视图V_WeekSell 393
11.2.2 创建贝叶斯挖掘模型 393
11.2.3 创建决策树挖掘模型 395
11.2.4 创建聚类分析挖掘模型 397
11.2.5 创建关联规则挖掘模型 398
11.2.6 创建时序挖掘模型 399
11.2.7 创建神经网络挖掘模型 400
11.2.8 创建顺序分析挖掘模型 401
11.2.9 线性回归挖掘模型 402
11.3 客户端应用程序开发 403
11.3.1 会员分析窗体 403
11.3.2 图书分析窗体 410