收藏 分享(赏)

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

上传人:HR专家 文档编号:7177875 上传时间:2019-05-08 格式:PPT 页数:36 大小:1.02MB
下载 相关 举报
C#程序设计大学教程(罗兵)第11章.ppt_第1页
第1页 / 共36页
C#程序设计大学教程(罗兵)第11章.ppt_第2页
第2页 / 共36页
C#程序设计大学教程(罗兵)第11章.ppt_第3页
第3页 / 共36页
C#程序设计大学教程(罗兵)第11章.ppt_第4页
第4页 / 共36页
C#程序设计大学教程(罗兵)第11章.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、北京理工大学珠海学院 孙细斌,1,C程序设计,第11章 数据库程序开发,北京理工大学珠海学院 孙细斌,2,学习目标,了解ADO.NET 掌握数据库的连接 掌握如何使用DataSet对象管理数据 掌握使用ADO.NET创建基于Windows的应用程序 掌握数据绑定的实现,北京理工大学珠海学院 孙细斌,3,11.1 ADO.NET概述,11.1.1 ADO.NET组件简介 ADO.NET式与C和.NET Framework一起使用的类集的名称,用于以关系型的、面向表的格式访问数据。 ADO.NET集成到.NET Framework中,可用于任何.NET语言,尤其是C。 ADO.NET包括所有的Sy

2、stem.Data命名空间,如System.Data.SqlClient,System.Data.OleDb及System.Xml等。,北京理工大学珠海学院 孙细斌,4,11.1.1 ADO.NET组件简介,ADO.NET组件是用来分离数据访问和数据操作的,有两个重要的组成部分: DataSet对象:用于以表格形式在程序中放置一组数据,并不关心数据的来源。 .NET Data Provider:用来在非连接环境中操作数据,主要包括Connection对象、Command对象、DataReader对象以及DataAdapter对象。,北京理工大学珠海学院 孙细斌,5,北京理工大学珠海学院 孙细斌

3、,6,数据库,.NET Data Provider,DataSet,DataTableCollection,DataTable,DataRowCollection,DataColumnCollection,DataRelationCollection,XML,北京理工大学珠海学院 孙细斌,7,11.1.2 已连接环境,指用户或应用程序持续连接到数据源。 优点:更安全,更易维护更容易控制并发性与非连接环境相比,数据刷新更及时 缺点: 必须有固定的数据库连接扩展性不强 示例: 股票交易所需要与股票信息报价固定连接,北京理工大学珠海学院 孙细斌,8,11.1.3 非连接的环境,指用户或应用程序并非一

4、直和数据源保持连接。即先使用数据的子集,后再将更新提交到数据源。 优点:任何时候都可用,并可随时连接到数据源进行处理共享连接资源提高了应用程序性能和扩展性 缺点: 数据不能保证是最新的可能发生更新冲突并且必须设法解决冲突,北京理工大学珠海学院 孙细斌,9,11.2 System.Data命名空间,在C代码中使用ADO.NET的第一步就是引用System.Data命名空间,其中包含所有的ADO.NET类。 1. SQL Server .NET数据提供者 如果使用的是SQL Server数据库(7.0及更高版本),则可引用SQL Server专用的.NET数据提供者:using System.Da

5、ta.SqlClient;,北京理工大学珠海学院 孙细斌,10,11.2 System.Data命名空间,2. Oracle .NET数据提供者 如果使用的是Oracle数据库,则可引用:using System.Data.OracleClient; 3. OLE DB .NET 提供者 对于Access数据源,可使用OLE DB.NET提供者:using System.Data.OleDb;,北京理工大学珠海学院 孙细斌,11,11.2 System.Data命名空间,4. ODBC.NET数据提供者 如果数据源没有内置的或OLE DB提供者,则可以使用ODBC.NET数据提供者,引用如下:

6、using System.Data.Odbc; 5. 其他内置的.NET数据提供者 如果数据库有专用的内置.NET数据提供者,则可以使用它,许多数据库销售商和第三方公司也提供了内置.NET数据提供者。,北京理工大学珠海学院 孙细斌,12,11.3 用DataReader读取数据,11.3.1 读取SQL Server创建的数据库 首先使用SQL Server创建数据库employee。 使用VS创建新的控制台应用程序Database。 首先,在代码编辑器顶端添加using命令:using System.Data; using System.Data.SqlClient; 然后在主函数中添加连接

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

8、; User= ; Password= ; Data Source = ;Initial Catalog = ; Integrated Security=SSPI;Provider=Microsoft.Jet.OLEDB.4.0; Data Source = ; User = ; Password= ;,北京理工大学珠海学院 孙细斌,15,11.4 用DataSet读取数据,DataSet是ADO.NET中的核心对象,所有复杂级别的操作都使用它,包含DataTable对象,表示所操作的数据库表。 每个DataTable对象都包含一些子对象DataRow和DataColumn,表示数据库表中的行

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

10、引访问:thisDataSet.Tables0指定DataSet中的第一个DataTable。,北京理工大学珠海学院 孙细斌,18,11.4 用DataSet读取数据,每个DataTable中都有一个Rows属性,是DataRow对象的集合,如:thisDataSet.Tables“employee”.Rowsn指定DataSet对象employee中指定行号n1。 也可以按列名或列号访问各个列,如:thisDataSet.Tables“employee”.Rowsn“EmpID”,北京理工大学珠海学院 孙细斌,19,11.4 用DataSet读取数据,11.4.3 示例演示 创建新控制台程序

11、,并根据数据库提供者不同为代码添加相应的using命令。 用DataSet对象实现之前的示例,代码:,北京理工大学珠海学院 孙细斌,20,11.5 更新数据库,数据库的操作(更新、插入和删除)可用相同的模式完成: 1)用数据库中要使用的数据填充DataSet。 2)修改存储在DataSet中的数据(更新、插入或删除记录) 3)完成操作后,将修改的内容返回到数据库中。,北京理工大学珠海学院 孙细斌,21,11.5 更新数据库,1. 修改记录示例 首先创建一个控制台应用程序,然后使用相应的using命令引用命名空间。 再在函数中添加数据库的连接,修改命令语句。 代码:,北京理工大学珠海学院 孙细斌

12、,22,11.5 更新数据库,2. 添加行示例 给数据库添加新行的过程如下 1)创建一个新的DataRow 2)给它填充数据 3)把它添加到DataSet的Rows集合中 4)调用DataAdapter对象的Updata方法,把这个变化返回到数据库中。代码:,北京理工大学珠海学院 孙细斌,23,11.5 更新数据库,3. 查找行示例 DataTable对象的Rows集合提供了Find()方法,用于搜索查找某行。 代码:,北京理工大学珠海学院 孙细斌,24,11.5 更新数据库,4. 删除行示例 DataRow对象的Delete()方法可以删除当前行。 改变上面的查找行示例中findRow上if

13、语句的作用,测试findRow不等于null的情况,去删除该行。 参考代码:,北京理工大学珠海学院 孙细斌,25,11.6 数据绑定,11.6.1 创建数据库和Windows应用程序项目 应用SQL Server或Access创建数据库employee。 运用VS新建一个Windows应用程序项目databaseExample。 11.6.2 给应用程序添加数据源 在databaseExampe项目中,点击菜单“数据”“添加新数据源”弹出数据源配置向导。,北京理工大学珠海学院 孙细斌,26,北京理工大学珠海学院 孙细斌,27,北京理工大学珠海学院 孙细斌,28,北京理工大学珠海学院 孙细斌,2

14、9,11.6.2 给应用程序添加数据源,然后从菜单“视图”“数据库资源管理器”, 显示整个数据库的信息。,北京理工大学珠海学院 孙细斌,30,单击菜单“数据”“显示数据源”,则在左边窗口中将显示数据源的信息。,北京理工大学珠海学院 孙细斌,31,在“数据源”窗口中用鼠标拖拽各数据项到界面上,则可看到会自动生成与数据库相连的控件。,北京理工大学珠海学院 孙细斌,32,11.6.2 给应用程序添加数据源,在“数据源”窗口中,如果直接用鼠标点中表名拖拽到界面上,则会自动创建一个与数据库相连的DataGridView控件,显示整张表的信息。 并且界面上自动拖拽出来的控件都可以在相应的属性窗口中设置不同

15、的属性。,北京理工大学珠海学院 孙细斌,33,11.6.3 更新数据库,可以在界面上看到自动生成的如下DataNavigator条,右边有一个SaveData按钮:,其Save Data按钮会自动添加更新数据的代码,但是比较简单,没有错误验证等附加代码,我们可以添加一些代码来验证用户对数据进行的修改是否合理,这样可以避免异常错误。,加入判断用户输入的PhoneExt要符合至少2位以上的要求,则添加代码如下: private void employeeBindingNavigatorSaveItem_Click(object sender, EventArgs e) if (this.phone

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报