标题：精通C#与NET 4.0数据库开发：基础、数据库核心技术、项目实战
基本信息
作者： 秦婧    石叶平     
出版社：清华大学出版社 
ISBN：9787302241218
上架时间：2011-1-20
出版日期：2011 年1月
开本：16开
页码：539
版次：1-1
内容简介
本书从实战出发，全面介绍了微软.net 4.0平台所涉及的sql server 2008、ado.net和linq等数据库开发技术。书中提供了大量实例，并提供了4个有针对性的项目案例供读者实战演练。
本书附带1张dvd光盘，内容为本书涉及的源代码和配套的教学视频，另外还赠送了c#、asp.net和sql server入门教学视频等其他学习资料。 本书共分6篇。第1篇介绍了.net框架、c#基本语法、c#类和接口、c#高级特性；第2篇介绍了windows窗体程序、多文档windows窗体程序、.net类库开发、asp.net网页开发；第3篇介绍了sql server 2008入门、transact-sql语言；第4篇介绍了使用ado.net表示数据库、使用ado.net访问数据库、使用.net数据绑定；第5篇介绍了linq查询基础、linq to dataset、linq to sql、linq to xml；第6篇介绍了4个有针对性的项目案例：atm交易管理系统、进销存管理信息系统、宾馆管理信息系统、me校友录，这些案例对提高读者的数据库开发水平有很大帮助。
本书内容丰富，重点突出，适合c#语言学习人员、.net程序员和数据库开发人员阅读，尤其适合想提高实际开发水平的人员阅读。另外，本书实用性强，很适合相关培训学校的学员作为教材使用。
目录
第1篇 c# 4.0语言基础 
第1章 了解.net框架（ 教学视频：20分钟） 2 
1.1 .net的产生和发展 2 
1.1.1 .net的产生 2 
1.1.2 .net的发展 3 
1.2 公共语言运行库 4 
1.2.1 公共语言规范——cls 4 
1.2.2 中间语言——msil 5 
1.2.3 公共语言规范与c# 6 
1.3 .net类库 7 
1.3.1 命名空间和程序集 7 
1.3.2 垃圾回收器 8 
1.3.3 .net类库范围 9 
1.4 小结 9 
第2章 c#基本语法（ 教学视频：39分钟） 11 
2.1 开发第一个c#程序 11 
2.1.1 创建控制台应用程序 11 
2.1.2 分析c#程序结构 12 
2.1.3 添加c#代码注释 14 
2.2 变量和数据类型 14 
.2.2.1 定义变量 15 
2.2.2 使用数值类型 16 
2.2.3 使用字符串类型 17 
2.2.4 使用枚举和布尔类型 19 
2.2.5 定义和使用结构体类型 20 
2.2.6 定义和使用数组 22 
2.2.7 定义常量 24 
2.3 运算符 25 
2.3.1 运算符分类 25 
2.3.2 用算术运算符进行算术运算 26 
2.3.3 用比较运算符进行比较 27 
2.3.4 用逻辑运算符进行逻辑运算 28 
2.3.5 用位运算符进行位操作 29 
2.3.6 用条件运算符判断条件 30 
2.4 函数 30 
2.4.1 定义和使用函数 30 
2.4.2 了解main()函数 32 
2.4.3 区分值传递和引用传递 33 
2.4.4 区分ref和out关键字 34 
2.4.5 使用params关键字 35 
2.5 语句 35 
2.5.1 使用if…else跳转语句 36 
2.5.2 使用switch开关语句 37 
2.5.3 用while和do…while循环语句 38 
2.5.4 用for和foreach遍历语句 40 
2.5.5 用break和continue控制循环 41 
2.6 小结 42 
第3章 c#类和接口（ 教学视频：46分钟） 43 
3.1 类和对象 43 
3.1.1 区分类和对象 43 
3.1.2 定义和使用类 44 
3.1.3 定义类的成员 46 
3.1.4 控制类成员的可访问性 50 
3.1.5 重载类的构造函数 51 
3.1.6 提供类的静态成员 53 
3.1.7 添加类的索引器 54 
3.2 类的继承 56 
3.2.1 从父类派生子类 56 
3.2.2 重载类的方法 58 
3.2.3 子类重载父类的虚函数 60 
3.2.4 区分抽象类和静态类 62 
3.2.5 定义密封类 63 
3.2.6 全部类的父类object类 64 
3.2.7 区分as和is关键字 64 
3.3 定义和实现接口 66 
3.3.1 定义接口 66 
3.3.2 在类上实现接口 67 
3.3.3 在类上实现多个接口 68 
3.3.4 比较接口和抽象类 69 
3.4 异常处理 69 
3.4.1 用try…catch捕获异常 69 
3.4.2 用throw抛出异常 71 
3.4.3 从exception类派生自定义异常 72 
3.4.4 用多个catch子句分级捕获异常 72 
3.5 小结 74 
第4章 c#高级特性（ 教学视频：52分钟） 75 
4.1 使用委托 75 
4.1.1 按照函数类型定义委托 75 
4.1.2 用委托动态调用函数 76 
4.1.3 用委托传递函数参数 77 
4.2 使用事件 78 
4.2.1 定义和发布事件 79 
4.2.2 订阅和处理事件 81 
4.3 使用泛型 83 
4.3.1 定义泛型 83 
4.3.2 泛型实例 84 
4.4 泛型集合类 85 
4.4.1 使用泛型列表list[t] 85 
4.4.2 添加元素到list[t] 87 
4.4.3 遍历list[t]的元素 88 
4.4.4 对list[t]进行排序 90 
4.4.5 在list[t]中查找元素 91 
4.4.6 移除list[t]的元素 93 
4.4.7 使用泛型字典dictionary[tkey, tvalue] 94 
4.4.8 添加和访问dictionary[tkey, tvalue]元素 95 
4.4.9 查询和移除dictionary[tkey, tvalue]元素 96 
4.5 更多高级特性 98 
4.5.1 定义和使用匿名类型 98 
4.5.2 添加扩展方法扩展现有类 99 
4.6 小结 100 
第2篇 开发应用程序 
第5章 windows窗体程序（ 教学视频：32分钟） 104 
5.1 第一个窗体应用程序 104 
5.1.1 创建和运行窗体程序 104 
5.1.2 分析窗体应用程序的结构 105 
5.1.3 用窗体设计器编辑控件和窗体 106 
5.1.4 添加窗体后台逻辑代码 108 
5.2 深入学习windows窗体 109 
5.2.1 了解windows窗体生命周期 109 
5.2.2 学习windows窗体主要属性 112 
5.2.3 设置windows窗体的主要属性 113 
5.2.4 显示和关闭windows窗体 113 
5.3 使用常用windows控件 115 
5.3.1 windows控件共有特性 115 
5.3.2 用label显示静态文本 118 
5.3.3 用button实现按钮 119 
5.3.4 用checkbox和radiobutton实现选中 120 
5.3.5 用textbox和maskedtextbox输入文本 121 
5.3.6 用listbox和combobox实现选中 124 
5.3.7 用tabcontrol实现动态分组 126 
5.4 使用菜单和工具栏 127 
5.4.1 用menustrip和contentmenustrip实现菜单 127 
5.4.2 用toolstrip控件实现工具栏 128 
5.4.3 用statusstrip控件实现状态栏 129 
5.5 使用通用对话框 130 
5.5.1 用messagebox显示提示消息 130 
5.5.2 用openfiledialog选择要打开的文件 131 
5.5.3 用savefiledialog选择要保存的文件 132 
5.5.4 用colordialog选择任意颜色 134 
5.5.5 用fontdialog选择字体 134 
5.6 小结 135 
第6章 多文档windows窗体程序（ 教学视频：41分钟） 137 
6.1 创建多文档窗体程序 137 
6.1.1 什么是多文档窗体程序 137 
6.1.2 创建visualstudio 2010提供的多文档父窗体 138 
6.1.3 详细分析多文档父窗体的实现 139 
6.2 在父窗体中管理子窗体 140 
6.2.1 添加子窗体到父窗体 140 
6.2.2 关闭打开的子窗体 141 
6.2.3 遍历存在的子窗体 142 
6.2.4 排列存在的子窗体 142 
6.3 文件阅读器实例 143 
6.3.1 创建文本编辑器实例 143 
6.3.2 打开文件阅读子窗体 145 
6.3.3 设置阅读参数对话框实现 146 
6.3.4 更新阅读参数到子窗体 148 
6.4 小结 149 
第7章 .net类库开发（ 教学视频：36分钟） 150 
7.1 .net类库项目 150 
7.1.1 什么是.net类库 150 
7.1.2 创建.net类库animallib 151 
7.1.3 实现.net类库animallib 151 
7.1.4 使用.net类库animallib 153 
7.1.5 通过项目引用animallib 155 
7.2 .net控件库 156 
7.2.1 自定义控件的分类 156 
7.2.2 创建.net控件库mycontrols 157 
7.2.3 继承textbox实现十六进制数字控件hextextbox 157 
7.2.4 继承usercontrol实现计算器控件caculatoruc 159 
7.2.5 使用自定义控件caculatoruc 162 
7.3 小结 163 
第8章 asp.net网页开发（ 教学视频：38分钟） 164 
8.1 asp.net入门 164 
8.1.1 什么是asp.net 164 
8.1.2 创建web网站应用程序 165 
8.1.3 通过网页设计器编辑web网页 166 
8.2 使用asp.net控件 168 
8.2.1 添加网页mypage到welcomesite 168 
8.2.2 用textbox控件输入数据 170 
8.2.3 用button控件实现按钮 171 
8.2.4 用hyperlink控件实现超链接 173 
8.2.5 用dropdownlist和listbox实现列表 174 
8.2.6 用menu控件实现菜单导航 175 
8.3 网页开发实例——用户注册 177 
8.3.1 设计用户注册网站 177 
8.3.2 实现欢迎页面welcom.aspx 178 
8.3.3 实现注册页面register.aspx 181 
8.3.4 实现查看用户页面viewuser.aspx 182 
8.3.5 发布用户注册网站 184 
8.4 小结 186 
第3篇 sql server 2008基础 
第9章 sql server 2008入门（ 教学视频：33分钟） 188 
9.1 什么是sql server 188 
9.1.1 了解关系数据库 188 
9.1.2 了解sql server 2008 189 
9.2 sql server管理工具 190 
9.2.1 sql server management studio管理器 190 
9.2.2 创建数据库——userlog 192 
9.2.3 创建数据表——users 194 
9.2.4 创建关系——ulrleation 195 
9.2.5 创建视图——ulview 196 
9.3 visual studio 2010管理数据库 197 
9.3.1 用visual studio 2010创建数据库 197 
9.3.2 用visual studio 2010连接到数据库 198 
9.3.3 用visual studio 2010管理数据库 199 
9.4 小结 199 
第10章 transact-sql语言（ 教学视频：39分钟） 200 
10.1 t-sql简介 200 
10.1.1 什么是t-sql 200 
10.1.2 创建visual studio 2010数据库项目 201 
10.2 通过t-sql管理数据库 202 
10.2.1 用create database创建数据库 202 
10.2.2 用create table创建数据表 203 
10.2.3 用alter table创建数据库关系 205 
10.2.4 用insert插入数据库记录 206 
10.2.5 用update更新数据库记录 208 
10.2.6 用delete删除数据库记录 209 
10.2.7 用select查询单表的记录 210 
10.2.8 用where查询指定条件的记录 212 
10.3 使用t-sql高级特性 213 
10.3.1 常用的t-sql数据类型 213 
10.3.2 常用的t-sql运算符 214 
10.3.3 使用t-sql表达式 216 
10.3.4 使用t-sql结构语句 217 
10.3.5 使用t-sql聚合函数 218 
10.3.6 使用t-sql数学计算函数 219 
10.3.7 使用t-sql时间日期函数 221 
10.3.8 使用t-sql字符串函数 222 
10.4 使用sql server存储过程 224 
10.4.1 存储过程介绍 224 
10.4.2 创建t-sql存储过程脚本 226 
10.4.3 编写简单t-sql存储过程 227 
10.4.4 安装和执行t-sql存储过程 227 
10.4.5 编写带参数的t-sql存储 229 
10.5 小结 231 
第4篇 ado.net操作数据库 
第11章 使用ado.net表示数据库（ 教学视频：33分钟） 234 
11.1 ado.net简介 234 
11.1.1 什么是ado.net 234 
11.1.2 ado.net数据提供程序 235 
11.1.3 了解ado.net相关类库 236 
11.2 datatable数据表 237 
11.2.1 了解datatable类成员 237 
11.2.2 添加和删除datatable的记录 239 
11.2.3 遍历datatable的记录 241 
11.2.4 提交或回滚datatable的更改 242 
11.2.5 监视datatable记录的更改 244 
11.3 dataset数据集合 246 
11.3.1 了解dataset类成员 246 
11.3.2 管理datatable集合 247 
11.3.3 管理datatable之间的关系 249 
11.3.4 提交和回滚dataset的更改 251 
11.3.5 通过dataset与xml交互 252 
11.4 小结 254 
第12章 使用ado.net访问数据库（ 教学视频：49分钟） 255 
12.1 了解ado.net访问数据库原理 255 
12.1.1 了解ado.net数据库操作类 255 
12.1.2 两种ado.net访问数据库的模式 256 
12.2 ado.net连接模式访问数据库 257 
12.2.1 了解sqlconnection连接类 257 
12.2.2 用sqlconnection创建数据库连接 259 
12.2.3 了解sqlcommand命令类 261 
12.2.4 用sqlcommand类执行更新操作 262 
12.2.5 用sqldatareader读取记录 263 
12.3 执行带参数的sql命令 265 
12.3.1 了解sqlparameter参数类 266 
12.3.2 管理sqlparameter对象集合 268 
12.3.3 用sqlparameter传递数据 269 
12.4 ado.net无连接模式访问数据库 271 
12.4.1 了解sqldataadapter适配器类 271 
12.4.2 用sqldataadapter获取数据 272 
12.4.3 用sqldataadapter修改数据 274 
12.5 小结 276 
第13章 使用.net数据绑定（ 教学视频：36分钟） 278 
13.1 .net数据绑定基础 278 
13.1.1 什么是数据绑定 278 
13.1.2 了解windows窗体数据绑定 279 
13.2 创建简单数据绑定 280 
13.2.1 用bindingsource绑定数据源 280 
13.2.2 用bindingnavigator进行导航 282 
13.2.3 绑定数据到textbox等控件 284 
13.3 创建复杂数据绑定 285 
13.3.1 了解datagridview控件 286 
13.3.2 了解datagridview控件外观 288 
13.3.3 编辑datagridview的列信息 290 
13.3.4 访问datagridview的数据 291 
13.3.5 绑定datagridview的数据 293 
13.3.6 用datagridview修改数据 295 
13.4 小结 297 
第5篇 linq查询开发 
第14章 linq查询基础（ 教学视频：55分钟） 300 
14.1 了解linq基础概念 300 
14.1.1 什么是linq 300 
14.1.2 linq有哪些相关组件 301 
14.1.3 linq与c#集成开发 302 
14.1.4 可枚举泛型接口ienumerable[t] 303 
14.2 使用linq表达式查询 305 
14.2.1 了解查询语法和查询表达式 305 
14.2.2 用from子句指定数据源 306 
14.2.3 用select子句指定查询结果 308 
14.2.4 在select子句中创建匿名类型 309 
14.2.5 用where子句指定过滤条件 310 
14.2.6 用并列where子句指定多个条件 312 
14.2.7 用orderby子句实现排序 312 
14.2.8 用group子句实现分组 314 
14.2.9 用into子句缓存查询结果 315 
14.2.10 用并列from子句实现联接 316 
14.2.11 用join子句实现内部联接 318 
14.2.12 用join子句实现分组联接 319 
14.2.13 用join子句实现外部联接 320 
14.3 使用linq方法查询 321 
14.3.1 了解lambda表达式和方法语法 321 
14.3.2 用where()筛选元素 323 
14.3.3 用orderby()对元素排序 324 
14.4 对linq查询结果执行集合操作 326 
14.4.1 用average()等执行数值计算 326 
14.4.2 用skip()和skipwhile()跳过元素 328 
14.4.3 用take()和takewhile()提取元素 329 
14.4.4 用distinct()方法消除相等元素 330 
14.4.5 用concat()连接两个集合 333 
14.4.6 用intersect()等集合操作 334 
14.5 小结 335 
第15章 linq to dataset（ 教学视频：36分钟） 337 
15.1 了解linq to dataset 337 
15.1.1 了解linq to ado.net 337 
15.1.2 了解linq to dataset 338 
15.2 使用linq to dataset查询数据 339 
15.2.1 linq to dataset开发步骤 339 
15.2.2 查询单个datatable的记录 340 
15.2.3 按指定条件过滤datatable的记录 342 
15.2.4 按指定顺序排列datatable的记录 343 
15.2.5 用多个from子句查询多个datatable 345 
15.2.6 用join子句查询多个datatable 347 
15.2.7 用datarowcomparer比较数据 348 
15.3 使用linq to dataset修改数据 350 
15.3.1 修改datatable中字段的值 350 
15.3.2 通过查询创建数据集备份 351 
15.4 使用linq to dataset数据绑定 352 
15.4.1 创建dataview数据源 353 
15.4.2 绑定dataview数据源到datagridview控件 354 
15.4.3 筛选dataview数据的记录 356 
15.4.4 排序dataview数据的记录 357 
15.5 小结 358 
第16章 linq to sql（ 教学视频：35分钟） 359 
16.1 了解linq to sql 359 
16.1.1 了解linq to sql 359 
16.1.2 了解对象关系模型 360 
16.2 使用o/r设计器 361 
16.2.1 用o/r设计器创建linq to sql类 361 
16.2.2 深入分析dbml文件 363 
16.3 linq to sql相关类 364 
16.3.1 深入学习datacontext类 364 
16.3.2 深入学习数据表users相关类 366 
16.4 使用linq to sql查询 368 
16.4.1 用datacontext加载数据 368 
16.4.2 查询数据库单表记录 370 
16.4.3 查询数据库多表记录 371 
16.4.4 修改数据库的记录 371 
16.5 小结 373 
第17章 linq to xml（ 教学视频：41分钟） 374 
17.1 了解xml 374 
17.1.1 了解xml文件 374 
17.1.2 了解system.xml命名空间 375 
17.2 使用dom操作xml数据 376 
17.2.1 用xmlreader读取xml数据 376 
17.2.2 用xmlwriter保存xml数据 379 
17.2.3 用xmldocument加载xml数据 381 
17.2.4 用xmldocument创建和保存xml数据 384 
17.3 了解linq to xml 386 
17.3.1 了解linq to xml 386 
17.3.2 用xelement创建xml元素 387 
17.3.3 用xelement创建xml树 388 
17.4 使用linq查询xml元素 389 
17.4.1 查询xml元素的所有子元素 390 
17.4.2 查询xml元素的特定子元素 392 
17.4.3 查询xml元素的属性 392 
17.4.4 筛选和排序xml元素 393 
17.4.5 在上下文中查询xml元素 395 
17.5 使用xelement操作xml树 396 
17.5.1 从文件加载xml元素 396 
17.5.2 添加任意xml子结点 398 
17.5.3 移除全部xml子结点 400 
17.5.4 移除部分xml子结点 401 
17.5.5 xml子结点自动移除 402 
17.5.6 保存xml元素到文件 404 
17.6 小结 405 
第6篇 项目实战 
第18章 t-sql实例——atm交易管理系统（ 教学视频：45分钟） 408 
18.1 atm交易管理系统需求分析 408 
18.1.1 分析用户的需求 409 
18.1.2 功能性需求分析 409 
18.1.3 系统总用例分析 409 
18.1.4 系统用例分析 410 
18.2 atm交易管理系统数据库设计 411 
18.2.1 实体关系图（e-r图） 412 
18.2.2 逻辑设计 412 
18.2.3 表设计 413 
18.2.4 表实现 414 
18.3 atm交易管理系统常规业务处理 418 
18.3.1 常规业务部分 418 
18.3.2 视图和索引部分 420 
18.3.3 创建存储过程 421 
18.3.4 创建数据库账户 428 
18.4 项目小结 429 
第19章 ado.net实例——进销存管理信息系统（ 教学视频：38分钟） 430 
19.1 项目概述 430 
19.1.1 功能概述 430 
19.1.2 用户环境描述 430 
19.1.3 可行性分析 431 
19.2 项目需求分析 431 
19.2.1 系统功能性需求分析 431 
19.2.2 系统总用例分析 433 
19.2.3 系统用例分析 433 
19.2.4 系统流程分析 435 
19.2.5 模块分析 436 
19.3 系统设计 437 
19.3.1 数据库逻辑结构设计 437 
19.3.2 系统e-r图 438 
19.3.3 数据库逻辑设计 439 
19.3.4 表设计 439 
19.4 进销存管理系统界面设计 441 
19.4.1 界面设计标准 441 
19.4.2 系统界面操作流程 441 
19.5 进销存管理软件的具体实现 443 
19.5.1 解决方案资源管理器 443 
19.5.2 定义dbhelper 444 
19.5.3 用户身份验证功能 445 
19.5.4 主界面的功能 447 
19.5.5 商品资料维护功能 448 
19.5.6 供应商资料维护功能 453 
19.5.7 品牌资料维护功能 457 
19.5.8 操作员资料维护功能 461 
19.5.9 销售出库功能 466 
19.5.10 销售退货功能 475 
19.5.11 采购入库功能 477 
19.5.12 采购退货功能 478 
19.5.13 库存查询功能 478 
19.5.14 实现销售出库记录查询 479 
19.5.15 实现销售退货记录查询 481 
19.5.16 实现采购入库记录查询 482 
19.5.17 实现采购退货记录查询 483 
19.6 项目小结 483 
第20章 linq to sql实例——宾馆管理信息系统（ 教学视频：39分钟） 485 
20.1 项目概述 485 
20.1.1 功能概述 485 
20.1.2 用户环境描述 485 
20.1.3 可行性分析 485 
20.2 项目需求分析 486 
20.2.1 系统功能性需求分析 486 
20.2.2 系统总用例分析 486 
20.2.3 系统用例分析 487 
20.3 系统总体架构设计 489 
20.3.1 三层结构原理 490 
20.3.2 系统三层搭建 491 
20.4 系统数据库设计 495 
20.4.1 收集客户信息 495 
20.4.2 标识对象 495 
20.4.3 标识对象的属性 495 
20.4.4 标识对象之间的关系 496 
20.4.5 系统e-r图 496 
20.4.6 数据库逻辑设计 496 
20.4.7 表设计 497 
20.5 宾馆管理系统界面设计 498 
20.5.1 界面设计标准 498 
20.5.2 系统界面操作流程 499 
20.6 宾馆管理软件的具体实现 500 
20.6.1 系统主界面 500 
20.6.2 系统登录窗体 501 
20.6.3 房间类型维护界面 502 
20.6.4 房间信息维护界面 505 
20.6.5 入住登记 507 
20.6.6 结账界面 510 
20.6.7 查询功能 512 
20.7 项目演示 514 
20.8 项目小结 516 
第21章 xml实例——me校友录（ 教学视频：28分钟） 517 
21.1 系统概述 517 
21.1.1 功能概述 517 
21.1.2 可行性分析 517 
21.2 项目需求分析 518 
21.2.1 系统功能分析 518 
21.2.2 系统总用例分析 519 
21.2.3 系统用例分析 519 
21.3 系统总体架构设计 520 
21.4 数据库设计 522 
21.5 系统设计与实现 523 
21.5.1 界面风格 523 
21.5.2 系统功能模块设计 524 
21.5.3 系统通用类实现 524 
21.5.4 注册功能实现 529 
21.5.5 登录功能 531 
21.5.6 详细信息 532 
21.5.7 修改我的信息 532 
21.5.8 校友列表信息 534 
21.5.9 成员管理 535 
21.5.10 整站登录验证 538 
21.6 项目小结 539