关于我们
![]() ![]() |
C#数据库编程实战经典 ![]()
《国外计算机科学经典教材:C#数据库编程实战经典》详细介绍了使用Visual C#.NET 2008进行数据库应用程序设计和开发关系型数据库(比如Microsoft Access、SQL Server和Oracle数据库)时应该考虑的问题。与传统图书使用大量代码块进行知识点介绍不同,《国外计算机科学经典教材:C#数据库编程实战经典》既介绍Visual Studio.NET提供的设计工具和向导,又介绍运行时对象方法,并结合对60多个实际案例的具体分析,向读者详细介绍了数据库编程的关键技术。
《国外计算机科学经典教材:C#数据库编程实战经典》既包含数据库编程的基础知识,又分析和探讨数据库编程的高级技术,既适用于学生和初学者,也适用于富有经验的程序员。通过完整的示例项目,详细介绍了如何针对三种主流的关系型数据库-Microsoft Access 2007、SQL Server 2005 SP2和Oracle Database 10g×E R2进行各种数据操作,并分析三者代码之间的差别。既有对通过设计工具和向导实现数据库编程任务的介绍,又包含通过运行时对象完成相同任务的技术和技巧,从而使读者真正理解并掌握数据库编程的实用技术。详细讨论并分析了新的数据库查询技术-LINQ API,包括LINQ to Objects、LINQ to SQL、LINQ to Entities和LINQ to XML。
前言
数据库已经成为现代日常生活中不可或缺的一部分。在信息驱动的现代社会,数据库技术已经在直接影响我们的日常生活。一些组织根据收集并存储在数据库中的信息来做决断:唱片公司根据青少年的音乐喜好来决定在某地区销售某种特定的CD;零售商把最好卖的商品放在与视线同高的地方,每隔一段时间就根据库存量来重新订货;其他的例子还包括医院的病人记录、银行的客户账户信息、图书馆的书籍订单、俱乐部会员、汽车零配件订单、百货公司的冬衣储备等等。 除了数据库管理系统之外,为了能在实际的工业或商业系统中高效地应用和实现数据库,还需要使用一个良好的图形化用户界面,以便用户访问和操作数据库中的数据记录。Visual C#.NET是创建GUI的理想选择。与其他的程序设计语言不同,Visual C#.NET具有很多优势,比如易于学习、容易理解、具有较短的学习曲线。从Visual Studio.NET 2003开始,Microsoft在.NET Framework中集成了多种程序设计语言,比如Visual C++、Visual Basic、C#和Visual J#,.NET Framework使Internet和Web程序设计变得更加简单和轻松,任何集成于该模型中的语言,都可用于开发专业和高效的Web应用程序,这些Web应用程序可以通过Internet与其他Web应用程序相互通信。ADO.NET和ASP.NET是.NET Framework中最重要的两个子模型。ADO.NET提供了对不同数据库进行访问和操作的所有数据组件,包括数据提供程序(Data Provider)、DataSet和DataTable。ASP.NET则为开发ASP.NET环境中的Web应用程序和Web Service提供了支持,为客户端与服务器之间轻松和便捷地交换信息提供了帮助。 对于那些希望使用Visual C#.NET 2008和某种关系型数据库,比如Microsoft Access、SQL Server 2005和Oracle Database 10g,开发实用数据库应用程序或者进行商用数据库开发的大学生和软件开发人员来说,本书正是为他们准备的。本书通过实际的案例以及对这些案例的精辟分析,详细介绍了如何使用Visual C# 2008进行数据库程序设计,以及在开发数据库应用程序时应该考虑的实际问题。更为重要的是,本书采用了一种新颖的写作风格,通过大量实际的案例,向读者清晰地介绍了在Visual C#.NET 2008环境中,如何处理数据库应用程序开发的问题。 本书的特色包括但不仅限于以下方面: 1) 本书采用了新颖的写作风格,有利于激发学生和程序设计新手对学习和开发数据库应用程序的兴趣,此外还避免了传统数据库程序设计书籍中使用大量代码的习惯,进而避免令读者感到头疼的问题发生。 2) 本书使用一个已完成的数据库案例,包含3个数据库版本——Microsoft Access 2007、SQL Server 2005 Express SP2和Oracle Database 10g Express Edition Release 2。本书还详细地介绍和描述了如何设计和创建一个实用的关系型数据库。 3) 本书既包含数据库编程的基础知识,又包含数据库编程的高级技术;既适用于学生和初学者,也适用于有经验的程序员。 4) 本书通过实际的项目,详细地讨论和分析了新的数据库查询技术——LINQ API,包括LINQ to Objects、LINQ to SQL、LINQ to Entities和LINQ to XML。 5) 本书详细讨论并分析了60多个数据库编程实际案例,可以帮助学生理解数据库编程的关键技术和技巧。 6) 本书使用的案例,涵盖当前最主流的3种数据库,即Microsoft Access 2007、SQL Server 2005 Express SP2和Oracle Database 10g Express Edition(XE)Release 2。 7) 在案例项目中,分别讨论并使用了多种不同的数据提供程序,比如SQL Server数据提供程序和Oracle数据提供程序。本书使用实际的SQL Server数据提供程序和Oracle数据提供程序来连接Visual C#.NET 2008,以直接执行对数据库的操作,而不是使用OleDb来访问SQL Server数据库和Oracle数据库。 8) 本书为每一章都提供了课后习题和参考答案,以帮助读者更好地学习和理解书中的内容。 9) 本书还提供了PowerPoint教学幻灯片,以帮助教师在教学过程中更好地组织课程。 10) 对于在校学生,本书是一本很好的教科书。对于程序员、软件工程师和学术研究者,本书则是一本很好的参考资料。 笔者真诚地希望本书能为所有读者和采用本书的用户提供有用的实际帮助。如果本书能为读者创建专业和实用的数据库应用程序提供帮助的话,笔者将深感欣慰。 Ying Bai Charlotte, North Carolina
Ying Bai博士是Johnson C.Smith University(JCSU)计算机科学与工程系的副教授。在加入JCSU之前,Ying Bai博士曾在美国加利福尼亚州的硅谷以及俄亥俄州的哥伦布市工作过,是自动控制和设备测试方面的高级软件工程师。Ying Bai博士在机器人控制技术、机器人标定技术和相关的软件编程,以及工业和学术领域的精确测量等方面有着极其丰富的经验。Ying Bai博士是IEEE的高级成员,也是ACM成员之一。近年来,他已经出版了6本书籍,涵盖多语言接口程序设计、串口程序设计、电子学、模糊逻辑以及VisualBasic.NEE数据库编程等方面。
第1章 本书概述
第2章 数据库简介 2.1 什么是数据库和数据库程序 2.1.1 文件处理系统 2.1.2 集成数据库 2.2 开发数据库 2.3 示例数据库 2.3.1 关系数据模型 2.3.2 实体-关系模型(er模型) 2.4 键 2.4.1 主键和实体完整性 2.4.2 候选键 2.4.3 外键和参照完整性 2.5 定义关系 2.6 er表示法 2.7 数据规范化 2.7.1 第一范式(1nf) 2.7.2 第二范式(2nf) 2.7.3 第三范式(3nf) 2.8 一些主流数据库中的数据库对象 2.8.1 access中的数据库对象 2.8.2 sqlserver中的数据库对象 2.8.3 oracle中的数据库对象 2.9 创建microsoftaccess2007示例数据库 2.9.1 创建表login 2.9.2 创建表faculty 2.9.3 创建其他表 2.9.4 创建表之间的关系 2.10 创建microsoftsqlserver2005示例数据库 2.10.1 创建表login 2.10.2 创建表faculty 2.10.3 创建其他表 2.10.4 创建表之间的关系 2.11创建oracledatabase10g示例数据库 2.11.1 创建oracle用户数据库 2.11.2 向oracle用户数据库添加新表 2.11.3 创建表之间的约束 2.12本章小结 第3章 ado.net简介 3.1 ado与ado.net 3.2 ado.net2.0概述 3.3 ado.net2.0的架构 3.4 ado.net2.0的组件 3.4.1 数据提供程序 3.4.2 connection类 3.4.3 command类和parameter类 3.4.4 dataadapter类 3.4.5 datareader类 3.4.6 dataset组件 3.4.7 datatable组件 3.4.8 ado.net3.5 entityframework 3.5 本章小结 第4章 linq简介 4.1 linq概述 4.1.1 linq中使用的一些特殊接口 4.1.2 标准查询操作符 4.1.3 延迟的标准查询操作符 4.1.4 非延迟的标准查询操作符 4.2 linq查询介绍 4.3 linq的架构和组件 4.3.1 linqtoobjects概述 4.3.2 linqtodataset概述 4.3.3 linqtosql概述 4.3.4 linqtoentities概述 4.3.5 linqtoxml概述 4.4 linqtoobjects 4.4.1 linq与arraylist 4.4.2 linq与字符串 4.4.3 linq与文件目录 4.4.4 linq与反射 4.5 linqtodataset 4.5.1 操作dataset对象 4.5.2 使用扩展方法操作datarow对象 4.5.3 操作datatable对象 4.6 linqtosql 4.6.1 linqtosql实体类和datacontext类 4.6.2 linqtosql数据库操作 4.6.3 linqtosql实例 4.7 linqtoentities 4.7.1 对象服务组件 4.7.2 objectcontext组件 4.7.3 objectquery组件 4.7.4 linqtoentities的执行流 4.7.5 linqtoentities实例 4.8 linqtoxml 4.8.1 linqtoxml中类的层次结构 4.8.2 操纵xml元素 4.8.3 操纵xml特性 4.8.4 使用linqtoxml查询xml 4.9 c#3.0针对linq的语言增强特性 4.9.1 lambda表达式 4.9.2 扩展方法 4.9.3 隐式类型局部变量 4.9.4 查询表达式 4.10 本章小结 第5章 使用visualc#.net查询数据 5.1 完成后的简单数据库实例 5.2 visualstudio2008设计工具和向导 5.2.1 toolbox工具箱中的数据设计工具 5.2.2 datasources窗格中的数据设计向导 5.3 使用sqlserver创建一个简单的数据库项目——selectwizard 5.4 添加和使用visualstudio中的向导和设计工具 5.5 使用datagridview控件查询并显示数据 5.5.1 查看全表 5.5.2 查看每一条记录或特定的列 5.6 使用数据集设计器编辑dataset的结构 5.7 将数据绑定到login窗体中的控件 5.8 开发使用fill()方法查询数据的代码 5.9 在login窗体中使用返回单个值的查询检索数据 5.10 为selection窗体编写代码 5.11 将数据绑定到faculty窗体中相应的控件 5.12 编写从faculty表中查询数据的代码 5.12.1 编写使用sqlselect方法查询数据的代码 5.12.2 编写使用linq方式查询数据的代码 5.13 在faculty窗体中显示图片 5.14 将数据绑定到course窗体中的相应控件 5.15 为course窗体编写数据查询代码 5.15.1 使用tableadapter方法从course表中查询数据 5.15.2 使用linq方法从course表中查询数据 5.16 使用oracle数据库创建一个简单的数据库项目——selectwizardoracle 5.16.1 创建一个新的visualc#项目——selectwizardoracle 5.16.2 选择并添加oracledatabase10gxe作为数据源 5.17 运行时对象简介 5.18 使用运行时对象查询microsoftaccess2007数据库中的数据 5.18.1 在login窗体中使用运行时对象查询数据 5.18.2 为selection窗体编写代码 5.18.3 在faculty窗体中使用运行时对象查询数据 5.18.4 在course窗体中使用运行时对象查询数据 5.18.5 在student窗体中使用运行时对象查询数据 5.19 使用运行时对象查询sqlserver数据库 5.19.1 从access迁移到sqlserver和oracle数据库 5.19.2 使用运行时对象查询数据 5.19.3 使用linqtosql技术查询数据 5.20 使用oracle数据库运行时对象查询数据 5.20.1 oracledatabase10gexpresseditionrelease2 5.20.2 配置oracle数据库的连接字符串 5.20.3 使用运行时对象查询数据 5.21 本章小结 第6章 使用visualc#.net执行数据插入 6.1 将新数据插入到数据库 6.1.1 使用tableadapter.insert()方法将新记录插入到数据库中 6.1.2 使用tableadapter.update()方法将新记录插入到数据库中 6.2 示例项目insertwizard:将数据插入到microsoftaccess数据库中 6.2.1 基于samplewizards项目创建一个新项目 6.2.2 应用程序的用户界面 6.2.3 创建insertfaculty窗体 6.2.4 复制visualc#.net项目和dataset 6.2.5 在插入数据之前验证数据 6.2.6 数据插入的初始化和结束代码 6.2.7 构造insert查询 6.2.8 开发使用tableadapter.insert()方法插入数据的代码 6.2.9 开发使用tableadapter.update()方法插入数据的代码 6.2.10 在执行完插入操作之后验证所插入的数据 6.3 示例项目sqlinsertwizard:将数据插入到sqlserver数据库中 6.3.1 将现有项目修改为一个新的数据插入项目 6.3.2 创建一个在course窗体中插入数据的新窗体 6.3.3 打开并连接到visualstudio设计工具 6.3.4 在插入数据之前初始化项目并检验数据 6.3.5 配置tableadapter以创建数据插入查询 6.3.6 开发使用tableadapter.insert()方法执行数据插入的代码 6.3.7 开发使用tableadapter.update()方法执行数据插入的代码 6.3.8 使用course窗体中的select按钮进行数据验证 6.3.9 使用存储过程将数据插入到数据库中 6.4 示例项目oracleinsertwizard:将数据插入到oracle数据库中 6.5 运行时对象方法 6.6 使用运行时对象将数据插入到sqlserver数据库中 6.6.1 添加数据插入窗体:insertfaculty窗体 6.6.2 修改复制项目中的代码 6.6.3 编写初始代码以及在插入数据之前检验数据的代码 6.6.4 将数据插入到faculty表中 6.6.5 在数据插入后验证数据 6.7 使用运行时对象将数据插入到microsoftaccess数据库中 6.7.1 修改名称空间 6.7.2 移除sp窗体和student窗体 6.7.3 修改数据库的连接字符串 6.7.4 修改登录查询字符串 6.7.5 修改查询faculty表的查询字符串 6.7.6 修改其他窗体 6.8 使用运行时对象将数据插入到oracle数据库中 6.8.1 添加oracle引用以及对oracle名称空间的引用 6.8.2 修改项目的名称空间 6.8.3 修改数据库连接 6.8.4 修改登录查询字符串 6.8.5 修改查询faculty表的查询字符串 6.8.6 修改其他窗体 6.9 使用linq查询将数据插入到数据库中 6.10 使用存储过程将数据插入到数据库中 6.10.1 使用存储过程将数据插入到sqlserver数据库中 6.10.2 使用存储过程将数据插入到oracle数据库中 6.11 本章小结 第7章 使用visualc#.net更新和删除数据 7.1 更新或删除数据库中的数据 7.1.1 更新或删除dataset中相关表的数据 7.1.2 使用tableadapterdbdirect方法更新或删除数据库中的数据——tableadapter.update()方法和tableadapter.delete()方法 7.1.3 使用tableadapter.update()方法更新或删除数据库中的数据 7.2 更新或删除microsoftaccess数据库中的数据 7.2.1 基于insertwizard项目创建新项目 7.2.2 开发应用程序的用户界面 7.2.3 在更新或删除之前检查数据 7.2.4 创建更新或删除查询 7.2.5 开发使用tableadapterdbdirect方法更新数据的代码 7.2.6 开发使用tableadapter.update()方法更新数据的代码 7.2.7 使用tableadapterdbdirect方法开发删除数据的代码 7.2.8 开发使用tableadapter.update()方法删除数据的代码 7.2.9 在数据更新和删除之后验证数据 7.3 更新或删除sqlserver数据库中的数据 7.4 更新或删除oracle数据库中的数据 7.5 运行时对象方法 7.6 使用运行时对象更新或删除sqlserver数据库中的数据 7.6.1 更新sqlserver数据库中faculty表的数据 7.6.2 从sqlserver数据库的faculty表中删除数据 7.7 使用运行时对象更新或删除oracle数据库中的数据 7.7.1 添加对oracle名称空间的引用 7.7.2 修改login窗体中的连接字符串和查询字符串 7.7.3 修改faculty窗体中的查询字符串 7.7.4 修改course窗体的查询字符串 7.7.5 其他修改 7.8 使用存储过程更新和删除数据库中的数据 7.8.1 使用存储过程更新和删除access数据库中的数据 7.8.2 使用存储过程更新或删除sqlserver数据库中的数据 7.8.3 在oracle数据库中使用存储过程更新或删除数据 7.9 使用linqtosql更新或删除数据库中的数据 7.9.1 创建datacontext对象 7.9.2 编写select按钮的单击事件处理程序 7.9.3 编写update按钮的单击事件处理程序 7.9.4 编写delete按钮的单击事件处理程序 7.10 本章小结 第8章 在asp.net中访问数据 8.1.netframework简介 8.2 asp.net和asp.net3.5 简介 8.2.1 asp.netweb应用程序的文件结构 8.2.2 asp.net的执行模型 8.2.3 当web应用程序执行时实际发生的过程 8.2.4 测试和运行web项目的条件 8.3 开发asp.netweb应用程序,选取并显示sqlserver数据库中的数据 8.3.1 创建用户界面——login窗体 8.3.2 开发用来访问数据库并获取数据的代码 8.3.3 在客户端验证数据 8.3.4 创建第2个用户界面——selection页面 8.3.5 开发打开其他web页面的代码 8.3.6 创建第3个用户界面——faculty页面 8.3.7 开发用来选取教员信息的代码 8.3.8 创建第4个用户界面——course页面 8.3.9 开发用来选取指定课程信息的代码 8.4 开发asp.netweb应用程序,将数据插入到sqlserver数据库中 8.4.1 创建新的web页面insert.aspx 8.4.2 开发用来执行数据插入功能的代码 8.4.3 编写page_load()方法和back按钮的单击事件处理程序 8.4.4 编写insert按钮的单击事件处理程序 8.4.5 编写其他方法的代码 8.4.6 验证数据插入操作 8.5 开发web应用程序,更新或删除数据sqlserver数据库中的数据 8.5.1 应用程序的用户界面 8.5.2 修改faculty页面的代码 8.5.3 编写update按钮的单击事件处理程序 8.5.4 编写delete按钮的单击事件处理程序 8.6 使用linqtosql查询开发asp.netweb应用程序 8.6.1 创建一个新的web窗体 8.6.2 创建一个新的datacontext对象 8.6.3 编写数据选取查询的代码 8.6.4 编写数据插入查询的代码 8.6.5 编写数据更新或删除查询的代码 8.7 开发asp.netweb应用程序,从oracle数据库中选取数据 8.7.1 修改login页面中的连接字符串和connection对象 8.7.2 修改login页面中的查询字符串 8.7.3 修改faculty页面中的查询字符串 8.7.4 修改course页面中的查询字符串 8.8 开发asp.netweb应用程序,向oracle数据库中插入数据 8.8.1 在faculty页面中添加两个控件 8.8.2 修改faculty页面中一些方法的代码 8.8.3 在faculty页面中创建插入新教员信息的代码 8.9 开发asp.netweb应用程序,更新或删除oracle数据库中的数据 8.9.1 修改项目,执行数据更新操作 8.9.2 开发存储过程,执行数据删除操作 8.10 本章小结 第9章 asp.netweb服务 9.1 web服务及其组件 9.2 创建web服务的过程 9.2.1 web服务项目的典型结构 9.2.2 创建web服务项目时需要实际考虑的问题 9.2.3 创建asp.netweb服务的过程 9.3 创建asp.netweb服务项目,访问sqlserver数据库 9.3.1 新web服务项目中创建的文件和项目 9.3.2 helloworldweb服务项目的运行效果 9.3.3 修改默认的web服务项目 9.3.4 为web服务创建一个处理错误检查的基类 9.3.5 创建实际的web服务类 9.3.6 在web服务类中添加web方法 9.3.7 为web方法编写代码以执行web服务 9.3.8 开发存储过程以执行数据查询 9.3.9 在web方法中使用dataset作为返回对象 9.3.10 创建基于windows的web服务客户端以使用web服务 9.3.11 创建一个基于web的web服务客户端以使用web服务 9.3.12 将开发完成的web服务部署到产品级服务器上 9.4 创建asp.netweb服务项目,将数据插入到sqlserver数据库中 9.4.1 修改已有的web服务项目 9.4.2 web服务项目的开发过程 9.4.3 开发和修改后台代码文件 9.4.4 创建基于windows的web服务客户端以使用web服务 9.4.5 创建基于web的web服务客户端以使用web服务 9.5 创建asp.netweb服务项目,更新或删除sqlserver数据库中的数据 9.5.1 修改已有的web服务项目 9.5.2 修改相关的web方法 9.5.3 开发两个存储过程:webupdatecoursesp和webdeletecoursesp 9.6 创建基于windows的web服务客户端以使用web服务 9.7 创建基于web的web服务客户端以使用web服务 9.7.1 创建新的网站项目并添加已有的web页面 9.7.2 添加web服务引用并修改web窗体 9.7.3 修改相关方法的代码 9.8 创建asp.netweb服务项目以访问oracle数据库 9.8.1 创建web服务项目webserviceoracleselect 9.8.2 修改连接字符串 9.8.3 修改名称空间列表 9.8.4 修改web方法getsqlselect及相关方法 9.8.5 修改web方法getsqlselectsp及相关方法 9.8.6 修改web方法getsqlselectdataset 9.9 创建web服务客户端以使用web服务webservice-oracleselect 9.10 创建asp.netweb服务项目,将数据插入到oracle数据库中 9.10.1 创建web服务项目webserviceoracleinsert 9.10.2 修改连接字符串 9.10.3 修改名称空间列表 9.10.4 修改web方法setsqlinsertsp及相关方法 9.10.5 修改web方法getsqlinsert及相关方法 9.10.6 修改web方法sqlinsertdataset 9.10.7 修改web方法getsqlinsertcourse及相关方法 9.11 创建web服务客户端以使用web服务webserviceoracleinsert 9.12 创建asp.netweb服务项目,更新或删除oracle数据库中的数据 9.12.1 创建web服务项目webserviceoracle-updatedelete 9.12.2 修改连接字符串 9.12.3 修改名称空间列表 9.12.4 修改web方法sqlupdatesp及相关方法 9.12.5 修改web方法getsqlcourse及相关方法 9.12.6 修改web方法getsqlcoursedetail及相关方法 9.12.7 修改web方法sqldeletesp 9.13 创建web服务客户端项目以使用web服务 9.14 本章小结
我要评论
|