第1章 类 1
1.1介绍Visual Studio和.NET 2
1.2最佳编程实践 4
1.2.1本书所用的术语 4
1.2.2命名 5
1.2.3编码规则 7
1.3基本数据类型 10
1.3.1值类型 11
1.3.2引用类型 11
1.3.3类型转换 13
1.3.4 .NET的Convert类 14
1.3.5引用类型参数 16
1.3.6对象的生命周期 16
1.3.7命名空间 17
1.4定义值类型 18
1.4.1枚举类型 18
1.4.2结构体 19
1.5创建和使用类 21
1.5.1向项目中添加类 21
1.5.2属性 23
1.5.3共享的数据成员和属性 25
1.5.4重写ToString方法 26
1.6构造函数 27
1.7用类来设计程序 32
1.7.1找出类 32
1.7.2继承 33
1.7.3多层架构应用 34
1.8着眼于程序设计和问题的解决:银行取款机应用程序 35
第2章 用户界面设计 55
2.1用户界面设计准则 56
2.1.1了解用户 56
2.1.2窗体设计 57
2.1.3将Microsoft Office当作模板 58
2.2输入校验 59
2.2.1总原则 59
2.2.2捕捉按键 60
2.2.3通过StatusStrip控件显示消息 62
2.2.4 ErrorProvider控件 63
2.3日期和时间 68
2.3.1 DateTimePicker控件 68
2.3.2 MonthCalendar控件 69
2.3.3 TimeSpan类 71
2.3.4检查日期范围 71
2.4 ToolStrip控件 76
2.5 WebBrowser和SplitContainer控件 82
2.5.1 WebBrowser控件 82
2.5.2 SplitContainer控件 85
2.6多文档界面(MDI) 87
2.7 ListView控件 92
2.7.1创建列表头 93
2.7.2 ListViewItem类 94
2.7.3 ListView使用技巧 96
2.8 TreeView控件 99
2.8.1 TreeView属性 99
2.8.2 TreeNode属性 100
2.8.3基本技巧 100
第3章 使用SQL Server数据库 119
3.1数据库基础 120
3.1.1主键 120
3.1.2 SQL Server数据类型 120
3.1.3设计数据库表 121
3.2 SQL SELECT语句 124
3.2.1 SELECT语句 124
3.2.2通过ORDER BY排序 125
3.2.3使用WHERE子句 126
3.3使用DataGridView 128
3.4选择DataSet中的数据行 138
3.4.1 SQL 138
3.4.2修改数据源的查询语句 138
3.4.3为DataGridView添加SELECT语句 140
3.5数据绑定控件 144
3.5.1 Visual Studio复制数据库文件 145
3.5.2绑定单个字段到控件 147
3.5.3 Karate数据库 149
3.5.4将数据源绑定到ListBox和ComboBox 150
3.5.5在DataSet表中插入行 153
3.5.6使用DataSet循环 157
3.6案例:Karate学校管理系统 159
3.6.1设计准则 159
3.6.2使用BindingSource 165
3.6.3使用查询参数 167
3.6.4 SQL查询语句中通配符的使用 168
第4章 深入类 187
4.1类库(组件) 188
4.1.1创建类库 188
4.1.2在程序中使用类库 189
4.2对象和反射 193
4.2.1反射 193
4.2.2 System.Object类 194
4.2.3值类型比较 194
4.2.4覆盖Equals方法 195
4.3接口 197
4.3.1定义接口 197
4.3.2实现接口 197
4.3.3 IComparable接口 199
4.4异常处理 203
4.4.1异常处理原则 203
4.4.2 Try...Catch...Finally语句 204
4.4.3传递异常 211
4.4.4在业务逻辑层处理异常 211
4.4.5异常处理提示 212
4.5继承 213
4.5.1访问修饰符 213
4.5.2创建派生类 213
4.5.3继承构造函数 216
4.5.4继承的属性和方法 217
4.5.5覆盖和重载 218
4.5.6高级话题:抽象类 222
4.5.7高级话题:多态 222
4.5.8高级话题:创建事件处理程序 222
第5章 ADO.NET数据库对象 229
5.1创建数据库 230
5.1.1 Database Explorer(Server Explorer)窗口 230
5.1.2创建数据库和数据表 231
5.2关系数据库设计 235
5.2.1 pubs数据库中的数据表 235
5.2.2表之间的关系 236
5.2.3数据库约束 240
5.2.4引用完整性约束 240
5.2.5列检查约束 241
5.2.6级联更新和删除 241
5.2.7连接数据库表 244
5.3视图和存储过程 249
5.3.1数据库视图 249
5.3.2存储过程 251
5.3.3多参数的存储过程 253
5.4 DataTable(数据表) 255
5.4.1 DataTable对象 255
5.4.2 DataRow对象 256
5.4.3 DataColumn对象 256
5.4.4读和写XML文件 257
5.4.5格式化DataGridView列 258
5.4.6强类型数据表 259
5.5 Connection、DataAdapter和DataSet 264
5.5.1 Connection 264
5.5.2 DataAdapter 266
5.5.3 Database类的实例 271
5.6使用SQL更新数据库 273
5.6.1插入数据行 273
5.6.2更新数据行 273
5.6.3删除数据行 274
5.6.4通过DataSet和TableAdapter来执行查询 274
第6章 数据库组件 291
6.1 Northwind数据库 292
6.2数据相关组件 293
6.2.1三层应用模型 294
6.2.2使用TableAdapter的注意事项 302
6.3 Command对象 303
6.3.1 My.Settings配置 303
6.3.2创建和执行Command对象 304
6.3.3执行命令 305
6.3.4 DataReader 306
6.3.5执行带参数的查询 312
6.3.6执行存储过程 314
6.4创建Northwind_Library组件 315
6.4.1通用的GetReader方法 315
6.4.2通用的GetTable方法 316
6.4.3构造SqlParameter对象 317
6.4.4调用GetTable方法 318
6.5组件测试 328
6.5.1 Debug对象 328
6.5.2前置条件、后置条件和断言 333
6.5.3组件测试的其他内容 334
第7章 ProjectTrackAw案例 343
7.1分析阶段 344
7.1.1 ProjectTrackAw项目的概述 344
7.1.2用例 345
7.1.3场景 347
7.1.4需求规格说明书 348
7.2数据库设计 349
7.2.1表 349
7.2.2视图 353
7.2.3存储过程 354
7.3组件类 356
7.3.1数据层:ProjectTrackAw组件 356
7.3.2业务规则层 359
7.4用户界面设计 362
7.5组件实现 374
7.5.1设置应用程序使其更灵活 374
7.5.2建立ProjectTrackAw组件 374
7.5.3 ProjectTrackAw组件中的业务规则层类 379
7.6应用程序实现 391
7.7测试应用程序 409
7.7.1基于需求的测试 409
7.7.2积极测试实例 410
7.7.3消极测试实例 414
7.7.4处理严重的错误 415
7.8扩展ProjectTrackAw应用程序 417
第8章 创建Web应用程序 425
8.1Web编程 426
8.1.1超文本标记语言(HTML) 426
8.1.2 Web应用程序如何工作 427
8.1.3控件类型 429
8.2创建ASP.NET应用程序 429
8.2.1网站类型 429
8.2.2创建Web应用程序 430
8.3 Web服务器控件 439
8.3.1如何处理Web控件 440
8.3.2 Web窗体中的事件处理程序 443
8.3.3例子:追踪Page_Load、TextChanged和Click事件 444
8.3.4 HyperLink、ImageButton、LinkButton和RadioButtonList 446
8.3.5 ListBox控件 447
8.3.6 CheckBoxList控件 448
8.3.7 DropDownList控件 449
8.3.8 Calendar控件 449
8.3.9 Kayak Tour Scheduler示例 452
8.4设计Web窗体 453
8.5包含多个网页的应用程序 460
8.5.1在项目中添加一个新Web窗体 460
8.5.2在页面间切换 461
8.5.3移到一个新网页 461
8.6使用数据库 463
8.6.1 GridView控件 463
8.6.2使用Detai is View控件修改表的行 467
第9章 在Web窗体上编写代码 487
9.1在源(XHTML)模式下工作 488
9.2级联样式表 496
9.2.1设置整个页的属性 497
9.2.2定义样式类 500
9.2.3 CSS Menu Demo示例 501
9.3自定义错误处理 503
9.4 上传文件和发送邮件 506
9.4.1 FileUpload控件属性 507
9.4.2发送电子邮件 510
9.5数据校验控件 516
9.5.1服务器端和客户端 517
9.5.2 RequiredFieldValidator控件 517
9.5.3 RangeValidator控件 520
9.5.4 CompareValidator控件 521
9.5.5 RegularExpressionValidator控件 522
9.5.6 CustomValidator控件 525
9.6状态管理 527
9.6.1页级别的状态(ViewState) 528
9.6.2 Session State 531
9.7聚焦问题解决方法:Vacation Rentals应用程序 533
9.7.1设计应用程序的Web窗体 534
9.7.2 DecimalRange结构 535
9.7.3 Rentallnfo类 536
9.7.4 Rental Request窗体 537
9.7.5确认页面 539
9.8浏览器cookie 540
9.8.1例子 541
9.8.2 Cookie Example程序 541
第10章 包含数据库对象的Web应用程序 553
10.1 Master-Detail页 554
10.1.1描述 554
10.1.2母版页 555
10.1.3内容页 556
10.2数据绑定和ListControl 563
10.2.1连接数据库 563
10.2.2 ListControl 564
10.2.3例子:将ListBox控件绑定到Northwind数据库的Products表 565
10.2.4 DropDownList控件 567
10.2.5 CheckBoxList控件 567
10.2.6 RadioButtonList控件 569
10.2.7 DataList控件 569
10.3 GridView控件按钮 570
10.3.1 GridView控件 571
10.3.2使用GridView属性来选择行 573
10.4基于组件的编程 578
10.4.1将Windows应用程序转换为Web应用程序 580
10.4.2创建定制的GridView列 581
10.4.3 ProjectTrackAw的Web实现 582
10.4.4实现启动页面 586
10.4.5 All Projects页的实现 587
10.5使用JavaScript 591
10.5.1编写JavaScript 591
10.5.2访问窗体域 592
10.5.3定义JavaScript函数 593
10.5.4调试JavaScript 597
10.6使用Login控件进行用户身份验证 598
10.6.1 Login控件 599
10.6.2 CreatUserWizard控件 600
10.6.3 ChangePassword控件 600
10.6.4 LoginStatus控件 601
10.6.5 PasswordRecovery控件 601
10.6.6网站管理 603
第11章 Web Service 623
11.1介绍XML Web Service 624
11.1.1示例:价格对比 624
11.1.2在Visual Studio中创建一个XML Web Service 625
11.2 Northwind Web Service示例 627
11.2.1从Web Service返回对象 629
11.2.2向同一解决方案中添加第二个Web项目 632
11.2.3在本机中定位Web Service 632
11.2.4添加数据集到Web Service中 639
11.3访问远程服务 641
第12章 水晶报表 649
12.1介绍水晶报表 650
12.2使用报表创建向导 653
12.3使用报表设计器编辑报表 658
12.4绑定到现有数据源 661
12.5创建分组显示的报表 666
12.6为报表添加图表 676
附录A 自测题答案 685
附录B 高级应用 695