第1章 ADO.NET非连接类概述 1
1.1 DataTable对象 2
1.1.1 添加DataColumn对象以创建
一个模式 2
1.1.2 创建主键列 3
1.1.3 创建用于存储数据的
DataRow对象 4
1.1.4 枚举DataTable对象 9
1.1.5 复制和克隆DataTable
对象 10
1.1.6 使用DataTable对象处理
XML数据 11
1.1.7 将DataView对象作为窗口
添加到DataTable对象中 14
1.1.8 使用一个DataSet对象处理
大量数据 16
1.1.9 更特殊的类型化DataSet
对象 18
1.1.10 使用DataRelation对象
导航家族树 19
1.1.11 序列化和解序DataSet
对象 22
1.1.12 使用Merge方法合并
DataSet数据 30
1.2 使用DataTableReader遍历数据 31
1.3 小结 33
第2章 ADO.NET连接类概述 34
2.1 使用“提供者类”移动数据 34
2.1.1 首先介绍DbConnection
对象 35
2.1.2 DbCommand对象 44
2.1.3 DbDataReader对象 48
2.1.4 使用多个活动结果集对
单个连接执行多条命令 49
2.1.5 使用SqlBulkCopy对象执行
批量复制操作 51
2.1.6 DbDataAdapter对象 52
2.1.7 DbProviderFactory类 57
2.1.8 DbProviderFactories类 60
2.1.9 枚举数据源 62
2.1.10 使用DbException捕获
提供者异常 64
2.2 小结 64
第3章 ADO.NET跟踪日志 65
3.1 建立跟踪 65
3.1.1 使用logman.exe
实用工具 67
3.1.2 性能日志和警告
管理单元 69
3.1.3 使用事件跟踪日志文件 71
3.1.4 使用LogParser实用工具 73
3.1.5 将跟踪用作诊断工具 74
3.2 小结 75
第4章 连接到数据存储区
(高级主题) 76
4.1 建立精确的连接字符串 76
4.2 连接池 80
4.2.1 创建和打开连接 80
4.2.2 连接池在哪儿 81
4.2.3 何时创建连接池 82
4.2.4 连接在池中的生存
时间是多少 82
4.2.5 超出连接池容量 82
4.2.6 何时关闭连接池 85
4.2.7 清除连接池 86
4.2.8 使用容错恢复技术 88
4.3 异步数据访问 91
4.3.1 同步访问对比异步访问 91
4.3.2 使用SQL Server提供者
的统计功能 94
4.4 小结 97
第6章 使用非连接数据 98
5.1 理解并发问题 98
解决并发冲突 99
5.2 设计非连接数据 100
5.2.1 应加载什么数据 101
5.2.2 选择主键 102
5.3 GUID的用法 107
5.3.1 复制/粘贴GUID 107
5.3.2 在非联接表中使用同名
的主键列 108
5.3.3 查找数据库中的GUID 108
5.3.4 查找数据库中所有使用
GUID的位置 109
5.4 建立冲突解决界面 110
5.4.1 创建项目 110
5.4.2 扩展类型化DataSet类
CustomerDataSet 112
5.4.3 扩展TableAdapter类
TblCustomerTableAdapter,以
导出ContinueUpdateOnError
属性 113
5.4.4 使DataSet非连接对象与
数据库服务器同步 114
5.4.5 创建冲突解决界面 115
5.4.6 调用冲突解决界面 119
5.4.7 使用冲突解决界面改正
并发错误 120
5.4.8 建立一个更好的冲突
解决界面 123
5.5 小结 123
第6章 处理关联的非连接数据 124
6.1 导航关系 124
6.2 创建约束 125
6.3 更新数据:引入数据访问层 127
6.3.1 获取关系 128
6.3.2 获取表列 130
6.3.3 排序表列 130
6.3.4 使用OrderedTableList
对象执行更新操作 136
6.3.5 测试关联更新 140
6.3.6 关于DAL更新的提示 142
6.4 小结 142
第7章 使用Windows数据网格控件 144
7.1 理解DataGridView控件 144
7.1.1 使用样式进行格式化 145
7.1.2 DataGridView的
操作模式 146
7.1.3 绑定数据源 146
7.1.4 资源共享 147
7.1.5 创建DataGridView对象 147
7.1.6 处理单元格事件 149
7.1.7 使用DataGridViewColumn
对象 153
7.1.8 使用DataGridViewRow
对象 161
7.1.9 实现virtual模式 162
7.2 小结 171
第8章 使用Web数据网格控件 172
8.1 理解GridView控件 172
8.1.1 使用样式进行格式化 174
8.1.2 绑定数据源 174
8.2 创建GridView对象 176
8.2.1 查看HTML源文件中的
声明性标记 179
8.2.2 以编程方式创建GridView
对象 181
8.2.3 处理GridView对象
的事件 186
8.2.4 处理列对象 188
8.3 小结 203
第9章 处理SQLCLR 204
9.1 SQLCLR能否取代T-SQL 204
9.2 不使用Visual Studio创建
存储过程 205
9.2.1 启用SQLCLR 206
9.2.2 创建源代码 206
9.2.3 使用上下文对象 207
9.2.4 编译代码 207
9.2.5 加载程序集 207
9.2.6 修改执行权限 208
9.2.7 注册存储过程 209
9.2.8 执行存储过程 209
9.2.9 刷新程序集 209
9.2.10 查看已安装的程序集
及其权限 210
9.2.11 使用参数传输数据 210
9.3 使用Visual Studio创建存储过程 212
9.4 传递行集数据 214
9.4.1 传递代码中生成的
行集数据 214
9.4.2 传递数据库行集中
的数据 220
9.5 创建用户自定义函数 221
9.5.1 使用标量函数 222
9.5.2 使用流表值函数(TVF) 224
9.6 处理用户自定义聚集 227
9.7 处理触发器 230
9.8 处理用户自定义类型 232
9.8.1 何时不使用UDT 237
9.8.2 何时使用UDT 237
9.9 在客户端访问SQLCLR特征 240
9.10 小结 242
第10章 理解事务 244
10.1 什么是事务 244
10.1.1 并发模型和数据库锁定 244
10.1.2 事务的孤立级别 245
10.1.3 单个事务和分布式事务 246
10.2 创建事务 246
10.2.1 使用T-SQL创建事务 247
10.2.2 使用ADO.NET的
DbTransaction对象
创建事务 247
10.3 设置事务的孤立级别 248
10.4 System.Transactions命名空间 250
10.4.1 使用TransactionScope
类创建事务 250
10.4.2 设置事务选项 252
10.4.3 处理分布式事务 253
10.4.4 建立自己的事务资源
管理器 257
10.4.5 在SQLCLR中使用
System.Transactions
命名空间 266
10.5 最佳实践 267
10.6 小结 267
第11章 获取元数据 269
11.1 开始了解元数据 269
11.2 获取元数据集合 272
11.2.1 模式导航 274
11.2.2 导航元数据集合 275
11.2.3 处理约束 276
11.2.4 修改和扩展元数据 282
11.2.5 理解惟一标识符部分 285
11.3 小结 285
第12章 缓存数据以提高性能 286
12.1 使用SqlDependency类 286
12.1.1 缓存哪些数据 286
12.1.2 SqlDependency
类是否适合你 287
12.1.3 SqlDependency类
的工作机制 287
12.1.4 查询注意事项 289
12.1.5 在SQL Server中创建
SqlDependency对象 289
12.1.6 使用SqlDependency
对象 290
12.1.7 选择通信渠道 292
12.2 ASP.NET SQL缓存无效 293
12.2.1 使用轮流检测技术以
使缓存无效 293
12.2.2 在SQL Server上使用轮流
检测技术的准备工作 293
12.2.3 创建使用轮流检测技术的
Web站点 295
12.2.4 在启用轮流检测技术之前
测试该应用程序 295
12.2.5 在Web应用程序中启用
轮流检测技术 296
12.2.6 在启用轮流检测技术后测试
该应用程序 297
12.2.7 使用命令通知来使
缓存无效 298
12.3 小结 300
第13章 实现安全性 302
13.1 应用程序安全性概述 302
13.1.1 身份验证 302
13.1.2 授权 303
13.1.3 身份模拟 304
13.1.4 委派 304
13.1.5 基于角色的安全性 306
13.1.6 代码访问安全性 307
13.2 SQL Server安全性 321
13.2.1 SQL Server身份验证 321
13.2.2 SQL Server授权 323
13.3 ADO.NET安全性 324
13.3.1 支持部分信任 324
13.3.2 在Web应用程序中存储加密
的连接字符串 327
13.3.3 防止SQL注入式攻击 329
13.3.4 使用存储过程 335
13.4 小结 335
第14章 处理大型对象 337
14.1 什么是LOB、BLOB和CLOB 337
14.1.1 LOB的存储位置 338
14.1.2 处理LOB 338
14.1.3 读取BLOB数据 338
14.1.4 写入BLOB数据 344
14.2 小结 346
第15章 处理XML数据 347
15.1 介绍XPath和XQuery 347
15.2 为什么要将XML数据存入
SQL Server 2005 348
15.3 xml数据类型 348
15.3.1 使用模式集合实现
“类型化”xml列 349
15.3.2 获取和修改XML数据 349
15.3.3 建立xml列的索引 350
15.4 开始了解xml数据类型 351
15.4.1 对XPath使用query方法 351
15.4.2 对XQuery使用query
方法 357
15.4.3 对XQuery使用exist
方法 375
15.4.4 使用modify方法
修改数据 376
15.4.5 使用nodes方法修改数据 380
15.4.6 编写xml列的索引 385
15.5 在ADO.NET中使用XML 386
15.6 小结 395
展开