C#程序设计大学教程(罗兵)第11章.ppt

上传人:qwe****56 文档编号:70106556 上传时间:2023-01-16 格式:PPT 页数:36 大小:1.02MB
返回 下载 相关 举报
C#程序设计大学教程(罗兵)第11章.ppt_第1页
第1页 / 共36页
C#程序设计大学教程(罗兵)第11章.ppt_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《C#程序设计大学教程(罗兵)第11章.ppt》由会员分享,可在线阅读,更多相关《C#程序设计大学教程(罗兵)第11章.ppt(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C C程序设计程序设计第第11章章 数据库程序开发数据库程序开发北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1学习目标学习目标了解了解ADO.NET掌握数据库的连接掌握数据库的连接掌握如何使用掌握如何使用DataSet对象管理数据对象管理数据掌握使用掌握使用ADO.NET创建基于创建基于Windows的应用的应用程序程序掌握数据绑定的实现掌握数据绑定的实现北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌211.1 ADO.NET概述概述11.1.1 ADO.NET组件简介组件简介ADO.NET式与式与C和和.NET Framework一起使用的一起使用的类集的名称,用于以关系型

2、的、面向表的格式访问类集的名称,用于以关系型的、面向表的格式访问数据。数据。ADO.NET集成到集成到.NET Framework中,可用于任何中,可用于任何.NET语言,尤其是语言,尤其是C。ADO.NET包括所有的包括所有的System.Data命名空间,如命名空间,如System.Data.SqlClient,System.Data.OleDb及及System.Xml等。等。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌311.1.1 ADO.NET组件简介组件简介ADO.NET组件是用来分离数据访问和数据组件是用来分离数据访问和数据操作的,有两个重要的组成部分:操作的,有两个重

3、要的组成部分:DataSet对象:用于以表格形式在程序中放对象:用于以表格形式在程序中放置一组数据,并不关心数据的来源。置一组数据,并不关心数据的来源。.NET Data Provider:用来在非连接环境中用来在非连接环境中操作数据,主要包括操作数据,主要包括Connection对象、对象、Command对象、对象、DataReader对象以及对象以及DataAdapter对象。对象。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌4北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌5数据库数据库数据库数据库.NET Data ProviderConnectionTransacti

4、onCommandParametersDataReaderDataAdapterSelectCommandInsertCommandUpdateCommandDeleteCommandDataSetDataTableCollectionDataTableDataRowCollectionDataColumnCollectionDataRelationCollectionXMLXML北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌611.1.2 已连接环境已连接环境 指指用户或应用程序持续连接到数据源。用户或应用程序持续连接到数据源。优点:优点:更安全,更易维护更安全,更易维护 更容易控制

5、并发性更容易控制并发性 与非连接环境相比,数据刷新更及时与非连接环境相比,数据刷新更及时缺点:缺点:必须有固定的数据库连接必须有固定的数据库连接 扩展性不强扩展性不强示例:示例:股票交易所需要与股票信息报价固定连接股票交易所需要与股票信息报价固定连接北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌711.1.3 非连接的环境非连接的环境指指用户或应用程序并非一直和数据源保持连接。即用户或应用程序并非一直和数据源保持连接。即先使用数据的子集,后再将更新提交到数据源。先使用数据的子集,后再将更新提交到数据源。优点:优点:任何时候都可用,并可随时连接到数据源进行处理任何时候都可用,并可随时连接

6、到数据源进行处理 共享连接资源共享连接资源 提高了应用程序性能和扩展性提高了应用程序性能和扩展性缺点:缺点:数据不能保证是最新的数据不能保证是最新的 可能发生更新冲突并且必须设法解决冲突可能发生更新冲突并且必须设法解决冲突北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌811.2 System.Data命名空间命名空间在在C代码中使用代码中使用ADO.NET的第一步就是的第一步就是引用引用System.Data命名空间,其中包含所有命名空间,其中包含所有的的ADO.NET类。类。1.SQL Server.NET数据提供者数据提供者如果使用的是如果使用的是SQL Server数据库(数据库

7、(7.0及更及更高版本),则可引用高版本),则可引用SQL Server专用的专用的.NET数据提供者:数据提供者:using System.Data.SqlClient;北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌911.2 System.Data命名空间命名空间2.Oracle.NET数据提供者数据提供者如果使用的是如果使用的是Oracle数据库,则可引用:数据库,则可引用:using System.Data.OracleClient;3.OLE DB.NET 提供者提供者对于对于Access数据源,可使用数据源,可使用OLE DB.NET提供者:提供者:using System

8、.Data.OleDb;北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1011.2 System.Data命名空间命名空间4.ODBC.NET数据提供者数据提供者如果数据源没有内置的或如果数据源没有内置的或OLE DB提供者,则可提供者,则可以使用以使用ODBC.NET数据提供者,引用如下:数据提供者,引用如下:using System.Data.Odbc;5.其他内置的其他内置的.NET数据提供者数据提供者如果数据库有专用的内置如果数据库有专用的内置.NET数据提供者,则可数据提供者,则可以使用它,许多数据库销售商和第三方公司也提以使用它,许多数据库销售商和第三方公司也提供了内置供了

9、内置.NET数据提供者。数据提供者。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1111.3 用用DataReader读取数据读取数据11.3.1 读取读取SQL Server创建的数据库创建的数据库首先使用首先使用SQL Server创建数据库创建数据库employee。使用使用VS创建新的控制台应用程序创建新的控制台应用程序Database。首先,在代码编辑器顶端添加首先,在代码编辑器顶端添加using命令:命令:using System.Data;using System.Data.SqlClient;然后在主函数中添加连接数据库、读取数据库命然后在主函数中添加连接数据库、读取

10、数据库命令令、通过、通过DataReader读取数据的命令及关闭释放读取数据的命令及关闭释放各对象的语句各对象的语句,如如:北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1211.3 用用DataReader读取数据读取数据11.3.2 读取读取Access创建的数据库创建的数据库步骤类似,先利用步骤类似,先利用Access创建数据库创建数据库employee,然后连接,读取数据。然后连接,读取数据。需注意不同的地方是要使用需注意不同的地方是要使用OLE DB提供者提供者类添加类添加using命令:命令:using System.Data.OleDb;示例代码:示例代码:北京理工大学珠

11、海学院北京理工大学珠海学院 孙细斌孙细斌13连接数据库的参数项:连接数据库的参数项:Server ;Integrated Security=false/(true/SSPI/yes);Database=;User=;Password=;Data Source=;Initial Catalog=;Integrated Security=SSPI;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=;User=;Password=;北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1411.4 用用DataSet读取数据读取数据DataSet是是ADO.N

12、ET中的核心对象,所有中的核心对象,所有复杂级别的操作都使用它,包含复杂级别的操作都使用它,包含DataTable对象,表示所操作的数据库表。对象,表示所操作的数据库表。每个每个DataTable对象都包含一些子对象对象都包含一些子对象DataRow和和DataColumn,表示数据库表中表示数据库表中的行和列。的行和列。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1511.4 用用DataSet读取数据读取数据11.4.1 用数据填充用数据填充DataSet用用DataAdapter对象的对象的Fill()方法来填充数方法来填充数据。据。因为因为DataSet是内存中数据的一个抽象

13、表示,是内存中数据的一个抽象表示,而而DataAdapter对象是把对象是把DataSet和具体数和具体数据库联系起来的对象。据库联系起来的对象。Why?北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1611.4 用用DataSet读取数据读取数据11.4.2 访问访问DataSet中的表、行和列中的表、行和列可以用两种方式访问每个可以用两种方式访问每个DataTable:1)按表名访问:按表名访问:thisDataSet.Tables“employee”指定指定DataTable对象对象employee。2)按索引访问:按索引访问:thisDataSet.Tables0 指定指定Da

14、taSet中的第一个中的第一个DataTable。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1711.4 用用DataSet读取数据读取数据每个每个DataTable中中都有一个都有一个Rows属性,是属性,是DataRow对象的集合,如:对象的集合,如:thisDataSet.Tables“employee”.Rowsn 指定指定DataSet对象对象employee中指定行号中指定行号n1。也也可以按列名或列号访问各个列,如:可以按列名或列号访问各个列,如:thisDataSet.Tables“employee”.Rowsn“EmpID”北京理工大学珠海学院北京理工大学珠海学院

15、 孙细斌孙细斌1811.4 用用DataSet读取数据读取数据11.4.3 示例演示示例演示创建新控制台程序,并根据数据库提供者创建新控制台程序,并根据数据库提供者不同为代码添加相应的不同为代码添加相应的using命令。命令。用用DataSet对象实现之前的示例,代码:对象实现之前的示例,代码:北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1911.5 更新数据库更新数据库数据库的操作(更新、插入和删除)可用数据库的操作(更新、插入和删除)可用相同的模式完成:相同的模式完成:1)用数据库中要使用的数据填充)用数据库中要使用的数据填充DataSet。2)修改存储在修改存储在DataSet

16、中的数据(更新、插中的数据(更新、插入或删除记录)入或删除记录)3)完成操作后,将修改的内容返回到数据)完成操作后,将修改的内容返回到数据库中。库中。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌2011.5 更新数据库更新数据库1.修改记录示例修改记录示例首先创建一个控制台应用程序,然后使用首先创建一个控制台应用程序,然后使用相应的相应的using命令引用命名空间。命令引用命名空间。再在函数中添加数据库的连接,修改命令再在函数中添加数据库的连接,修改命令语句。语句。代码:代码:北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌2111.5 更新数据库更新数据库2.添加行示例添加行

17、示例给数据库添加新行的过程如下给数据库添加新行的过程如下1)创建一个新的)创建一个新的DataRow2)给它填充数据给它填充数据3)把它添加到)把它添加到DataSet的的Rows集合中集合中4)调用)调用DataAdapter对象的对象的Updata方法,把方法,把这个变化返回到数据库中。这个变化返回到数据库中。代码:代码:北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌2211.5 更新数据库更新数据库3.查找行示例查找行示例DataTable对象的对象的Rows集合提供了集合提供了Find()()方法,用于搜索查找某行。方法,用于搜索查找某行。代码:代码:北京理工大学珠海学院北京理

18、工大学珠海学院 孙细斌孙细斌2311.5 更新数据库更新数据库4.删除行示例删除行示例DataRow对象的对象的Delete()()方法可以删除方法可以删除当前行。当前行。改变上面的查找行示例中改变上面的查找行示例中findRow上上if语句语句的作用,测试的作用,测试findRow不等于不等于null的情况,的情况,去删除该行。去删除该行。参考代码:参考代码:北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌2411.6 数据绑定数据绑定11.6.1 创建数据库和创建数据库和Windows应用程序项目应用程序项目应用应用SQL Server或或Access创建数据库创建数据库employ

19、ee。运用运用VS新建一个新建一个Windows应用程序项目应用程序项目databaseExample。11.6.2 给应用程序添加数据源给应用程序添加数据源在在databaseExampe项目中,点击菜单项目中,点击菜单“数据数据”“添加新数据源添加新数据源”弹出数据源配置向弹出数据源配置向导。导。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌25北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌26北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌27北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌2811.6.2 给应用程序添加数据源给应用程序添加数据源然后从菜然后

20、从菜单单“视图视图”“数数据库资源据库资源管理器管理器”,显示整个显示整个数据库的数据库的信息。信息。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌29单击菜单单击菜单“数据数据”“显显示数据源示数据源”,则在,则在左边窗口左边窗口中将显示中将显示数据源的数据源的信息。信息。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌30在在“数据源数据源”窗口中用鼠标拖拽各数据项窗口中用鼠标拖拽各数据项到界面上,则可看到会自动生成与数据库到界面上,则可看到会自动生成与数据库相连的控件。相连的控件。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌3111.6.2 给应用程序添加数据源给

21、应用程序添加数据源在在“数据源数据源”窗口中,如果直接用鼠标点窗口中,如果直接用鼠标点中表名拖拽到界面上,则会自动创建一个中表名拖拽到界面上,则会自动创建一个与数据库相连的与数据库相连的DataGridView控件,显示控件,显示整张表的信息。整张表的信息。并且界面上自动拖拽出来的控件都可以在并且界面上自动拖拽出来的控件都可以在相应的属性窗口中设置不同的属性。相应的属性窗口中设置不同的属性。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌3211.6.3 更新数据库更新数据库可以在界面上看到自动生成的如下可以在界面上看到自动生成的如下DataNavigator条,右边有一个条,右边有一个

22、SaveData按按钮:钮:其其Save Data按钮会自动添加更新数据的代按钮会自动添加更新数据的代码,但是比较简单,没有错误验证等附加码,但是比较简单,没有错误验证等附加代码,我们可以添加一些代码来验证用户代码,我们可以添加一些代码来验证用户对数据进行的修改是否合理,这样可以避对数据进行的修改是否合理,这样可以避免异常错误。免异常错误。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌33加入判断用户输入的加入判断用户输入的PhoneExt要符合至少要符合至少2位以位以上的要求,则添加代码如下:上的要求,则添加代码如下:private void employeeBindingNavig

23、atorSaveItem_Click(object sender,EventArgs e)if(this.phoneExtTextBox.Text.Length 2)MessageBox.Show(this,电话号码必须要电话号码必须要2位以上位以上,save);return;if(this.Validate()this.employeeBindingSource.EndEdit();this.employeeTableAdapter.Update (this.employeeDataSet.employee);北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌34总结思考总结思考填图题:填图题:ADO.NET两个重要的组成部分?两个重要的组成部分?连接的和非连接的环境之间的区别是什么连接的和非连接的环境之间的区别是什么?哪种哪种Windows窗体控件可以用来显示从数窗体控件可以用来显示从数据源中得到多条记录?据源中得到多条记录?DataAdapter对象的主要作用是什么?对象的主要作用是什么?北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌35 The End!再见!再见!北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌36

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁