C#网络应用编程基础 教学课件 ppt 作者 马骏1 第08章 ADO.NET与SQLServer

上传人:E**** 文档编号:89345236 上传时间:2019-05-23 格式:PPT 页数:127 大小:352KB
返回 下载 相关 举报
C#网络应用编程基础 教学课件 ppt 作者  马骏1 第08章 ADO.NET与SQLServer_第1页
第1页 / 共127页
C#网络应用编程基础 教学课件 ppt 作者  马骏1 第08章 ADO.NET与SQLServer_第2页
第2页 / 共127页
C#网络应用编程基础 教学课件 ppt 作者  马骏1 第08章 ADO.NET与SQLServer_第3页
第3页 / 共127页
C#网络应用编程基础 教学课件 ppt 作者  马骏1 第08章 ADO.NET与SQLServer_第4页
第4页 / 共127页
C#网络应用编程基础 教学课件 ppt 作者  马骏1 第08章 ADO.NET与SQLServer_第5页
第5页 / 共127页
点击查看更多>>
资源描述

《C#网络应用编程基础 教学课件 ppt 作者 马骏1 第08章 ADO.NET与SQLServer》由会员分享,可在线阅读,更多相关《C#网络应用编程基础 教学课件 ppt 作者 马骏1 第08章 ADO.NET与SQLServer(127页珍藏版)》请在金锄头文库上搜索。

1、第8章 ADO.NET与SQL Server,背景知识 8.1 创建数据库与数据库表 8.2 ADO.NET数据访问对象 8.3 数据绑定技术 8.4 数据处理控件 8.5 存储过程,背景知识,ADO.NET是在ADO(ActiveX Data Objects)基础上发展的新一代数据存取技术,是微软.NET平台下提出的新的数据访问模型。ADO.NET设计了一系列对各类数据的访问形式,并提供了对应的类,类中提供了与对应数据交互的属性和方法,我们可以通过这些属性和方法对各种数据进行存取操作。,ADO: ActiveX Data Objects,即ActiveX数据 对象,是一组优化的访问数据库的专

2、用对象集。在 .NET之前的软件一般使用ADO对象。 ADO.NET:在.NET平台下重新设计的数据访问 模型。它提供了一系列对各类数据的访问形式,并 提供了对应的类,类中提供了与对应数据交互的属 性和方法,编程者可以通过这些属性和方法方便的 对各种数据进行存取操作,例如数据库、XML等。,背景知识(续),背景知识(续),VS2005开发环境下使用的是ADO.NET 2.0。 在ADO.NET 2.0中,SQL数据提供程序使用统一 的SQL数据访问模型实现对各种使用SQL语句的数 据库的数据访问支持。例如Oracle、SQL Server、 DB2、Access等。 ADO.NET的最大特点:

3、 支持对数据的无连接方式的访问,减少与数据 库的活动连接数目。,背景知识(续),VS2005开发环境下,可以直接使用SQL Server Express管理本机数据库。,背景知识(续),8.1 创建数据库与数据库表,创建数据库的方式: 在项目中直接创建数据库。 选择菜单的【视图】【服务器资源管理器】, 然后通过【添加数据连接】创建数据库。 通过选择菜单的【数据】【添加数据源】,然 后利用向导完成创建过程。,【例8-1】创建数据库MyDatabase.mdf并将其保存在项目所在的文件夹中,然后在数据库中创建表MyTable1、MyTable2和MyTable3,并利用查询设计器创建和运行查询语句

4、,体会系统提供的功能。,8.1 创建数据库与数据库表 (续),8.2 ADO.NET数据访问对象,ADO.NET提供了多种对象模型,比较典型的有: SqlConnection对象 SqlCommand对象 SqlDataReader对象 SqlDataAdapter对象 SqlParameter对象 SqlTransaction对象 这些对象提供了对Sql Server数据源的各种不同的访问功能,全部归类在System.Data.SqlClient命名空间下。,8.2.1 SqlConnection对象,ADO.NET使用SqlConnection对象与SQL Server进行连接。但是要在S

5、qlConnection对象中指定一个连接字符串。,8.2.2 SqlCommand对象,在ADO.NET中,有两种操作数据库的方式: (1)采用无连接的方式。 (2)采用保持连接的方式。 不论采用哪种方式,都可以通过SqlCommand对象提供的方法传递对数据库操作的命令,并返回命令执行的结果。,8.2.2 SqlCommand对象(续),在保持连接的方式下操作数据库的一般步骤为: 1) 创建SqlConnection的实例; 2) 创建SqlCommand的实例; 3) 打开连接; 4) 执行命令; 5) 关闭连接。 SqlCommand对象提供了多种完成对数据库操作的 方法。常用有: 1

6、. ExecuteNonQuery 该方法执行SQL语句的结果,但不返回命令执行的 表数据,仅返回操作所影响的行数。,8.2.2 SqlCommand对象(续),【例8-2】将MyTable2中张三玉的成绩增加10分,8.2.2 SqlCommand对象(续),string connectionString = Properties.Settings.Default.MyDatabaseConnectionString; /根据连接字符串创建SqlConnection实例 SqlConnection conn = new SqlConnection(connectionString); /创建

7、SqlCommand实例,并设置SQL语句和使用的连接实例 SqlCommand cmd = new SqlCommand(); cmd.CommandText = “update MyTable2 set 成绩=成绩+10 where 姓名=张三玉“; cmd.Connection = conn; try ,8.2.2 SqlCommand对象(续),conn.Open(); /将执行SQL语句影响的记录数赋值给number int number = cmd.ExecuteNonQuery(); MessageBox.Show(string.Format(“修改了0条记录“, number)

8、; catch (Exception err) MessageBox.Show(err.Message, “修改记录失败“); finally,8.2.2 SqlCommand对象(续), if (conn.State = ConnectionState.Open) conn.Close(); ,8.2.2 SqlCommand对象(续),2. ExecuteReader ExecuteReader方法提供了只向前的、顺序的快 速读取数据库中数据的方法。该方法根据提供的 SELECT语句,返回一个可以顺序读取的 SqlDataReader对象,编程者可以使用Read方法循 环依次读取每个记录中

9、各字段(列)的内容。,8.2.2 SqlCommand对象(续),【例8-3】在ListBox中按自定义格式显示MyTable1 的编码对照表。,8.2.2 SqlCommand对象(续),private void buttonShowMyTable1_Click(object sender, EventArgs e) SqlConnection conn = new SqlConnection(Properties.Settings.Default.MyDatabaseConnectionString); SqlCommand cmd = new SqlCommand(“select * f

10、rom MyTable1 “, conn); try conn.Open(); SqlDataReader r = cmd.ExecuteReader(); while (r.Read() = true),8.2.2 SqlCommand对象(续), listBox1.Items.Add(string.Format(“01“, r0, r1); r.Close(); catch (Exception err) MessageBox.Show(err.Message, “读取记录失败“); finally conn.Close(); ,8.2.2 SqlCommand对象(续),3. Execu

11、teScaler() 该方法用于执行SELECT查询,得到的返回结果 为一个值的情况,比如使用count函数求表中记录个 数或者使用sum函数求和等。 【例8-4】统计MyTable2中所有姓王的人数及成绩 的和。,8.2.2 SqlCommand对象(续),private void buttonCount_Click(object sender, EventArgs e) SqlConnection conn = new SqlConnection(Properties.Settings.Default.MyDatabaseConnectionString); SqlCommand cmd

12、= new SqlCommand(); cmd.Connection = conn; try,8.2.2 SqlCommand对象(续), conn.Open(); cmd.CommandText = “select count(*) from MyTable2 where 姓名 like 王%“; int record = (int)cmd.ExecuteScalar(); cmd.CommandText = “select sum(成绩) from MyTable2 where 姓名 like 王%“; double sumValue = Convert.ToDouble(cmd.Exec

13、uteScalar(); MessageBox.Show(string.Format(“有0条姓王的记录,合计成绩为1“, record, sumValue); catch (Exception err),8.2.2 SqlCommand对象(续), MessageBox.Show(err.Message); finally conn.Close(); ,8.2.3 SqlDataAdapter对象,SqlDataAdapter对象通过无连接的方式完成数据 库和本地DataSet之间的交互。一般步骤: 1) 创建SqlConnection的实例; 2) 创建SqlDataAdapter的实例,

14、需要的话,根据 select语句生成其他SQL语句; 3) 创建DataSet的实例; 4) 使用Fill方法将数据库中的表填充到DataSet 表中; 5) 利用DataGridView或者其他控件对象编辑或显,8.2.3 SqlDataAdapter对象(续),示数据; 6) 需要的话,使用Update方法更新数据库。 SqlDataAdapter对象通过SelectCommand、Insert Command、UpdateCommand和DeleteCommand属性为后台数据库提供对应的操作命令,并传递需要的参数。一般情况下,只需要提供SELECT语句和连接字符串创建SqlDataAd

15、apter对象,然后利用SqlCommandBuilder对象生成InsertCommand、UpdateCommand和DeleteCommand属性。,8.2.3 SqlDataAdapter对象(续),【例8-5】根据选择的表名称打开指定数据库中的 表,并将表中数据通过DataGridView显示出来。,8.2.3 SqlDataAdapter对象(续),string tableName = (radioButtonMyTable1.Checked = true ? “MyTable1“ : “MyTable2“); string connectionString = Propertie

16、s.Settings.Default.MyDatabaseConnectionString; SqlConnection conn = new SqlConnection(connectionString); adapter = new SqlDataAdapter(“select * from “ + tableName, conn); SqlCommandBuilder builder = new SqlCommandBuilder(adapter); adapter.InsertCommand = builder.GetInsertCommand(); adapter.DeleteCommand = builder.GetDeleteCommand(); adapter.UpdateCommand = builder.GetUpdate

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号