《sql server数据库应用与实践教程》课件第13章 ADO.NET访问数据库.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《sql server数据库应用与实践教程》课件第13章 ADO.NET访问数据库.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sql server数据库应用与实践教程 sql server数据库应用与实践教程课件第13章 ADO.NET访问数据库 sql server 数据库 应用 实践 教程 课件 13 ADO NET
- 资源描述:
-
1、第十三章第十三章ADO.NET访问数据库访问数据库软件开发的三层结构软件开发的三层结构连接式访问数据库连接式访问数据库非连接式访问数据库非连接式访问数据库表示层表示层(UI)业务逻辑层业务逻辑层(BLL)数据访问层数据访问层(DAL)DBASP.NET,HTML,CSS,JAVASCRIPTC#ADO.NETSQL SERVER,ORACLEADO.NET 是是.NET 应用程序用来与数据库通讯的模型,用于检索、访问应用程序用来与数据库通讯的模型,用于检索、访问和更新数据。和更新数据。.NET框架数据提供程序框架数据提供程序Data AdapterSelect CommandInsert Co
2、mmandUpdateCommandDeleteCommandDataReaderCommandConnectionDBDataSetDataTableCollectionDataTableDataRowCollectionDataColumnCollectionConstraintCollectionDataRelationCollection连接方式连接方式优点优点缺点缺点连接式连接式1.数据并发性问题更容易控制数据并发性问题更容易控制1.持续的网络连接有时可能导致持续的网络连接有时可能导致网络流量阻塞网络流量阻塞2.数据是当前的和更新的数据是当前的和更新的2.应用程序中的可扩展性和性能应
3、用程序中的可扩展性和性能问题问题非连接式非连接式1.允许多个应用程序同时与允许多个应用程序同时与数据源进行交互。数据源进行交互。2.提高可扩展性和应用程序的提高可扩展性和应用程序的性能性能1.由于没有与数据源建立连接,由于没有与数据源建立连接,数据不是总保持最新数据不是总保持最新2.当多个用户向数据源更新数据当多个用户向数据源更新数据时,可能会发生数据并发性问题。时,可能会发生数据并发性问题。思考:连接式和非连接式应用场合?思考:连接式和非连接式应用场合?1.string ConnStr=Data Source=HUANG-PCSQLEXPRESS;Initial Catalog=School
4、Info;User ID=sa;Password=123456“;2.SqlConnection conn=new SqlConnection();3.conn.ConnectionString=ConnStr;4.if(conn.State=ConnectionState.Closed)5.conn.Open();6.string sql=“select*from student”;7.SqlCommand cmd=new SqlCommand(sql,conn);8.SqlDataReader reader=cmd.ExecuteReader();9.while(reader.Read()
5、10.11.Console.WriteLine(“学号:学号:0,姓名:姓名:1”,reader0.ToString(),reader1.ToString();12.13.reader.Close();14.if(conn.State=ConnectionState.Open)15.conn.Close();思考:假设应用程序有思考:假设应用程序有100个页面,每个页面个页面,每个页面都需要访问数据库。会出现什么问题?都需要访问数据库。会出现什么问题?1.添加应用程序配置文件添加应用程序配置文件App.config2.文件中在文件中在节点中添加连接串节点中添加连接串 3.添加引用,同时页面代码
6、头部添加命名空间添加引用,同时页面代码头部添加命名空间添加引用添加引用System.Configuration添加命名空间添加命名空间Using System.Configuration4.获取连接串获取连接串string ConnStr=System.Configuration.ConfigurationManager .ConnectionStringsconnection.ToString();1.SqlConnection conn=new SqlConnection();2.conn.ConnectionString=ConnStr;3.if(conn.State=Connectio
7、nState.Closed)4.conn.Open();5.int DepID=Convert.ToInt32(Console.ReadLine();6.string DepName=Console.ReadLine();7.int Total=Convert.ToInt32(Console.ReadLine();8.string sql=insert into Department values(+DepID.ToString()+,+DepName+,+Total.ToString()+);9.SqlCommand cmd=new SqlCommand(sql,conn);10.int i
8、Rows=cmd.ExecuteNonQuery();11.if(iRows0)12.Console.WriteLine(success);13.else 14.Console.WriteLine(failed);15.if(conn.State=ConnectionState.Open)16.conn.Close();SqlConnection conn=new SqlConnection();conn.ConnectionString=ConnStr;if(conn.State=ConnectionState.Closed)conn.Open();Console.WriteLine(“请输
9、入要删除的学号请输入要删除的学号”);string StuID=Console.ReadLine();string sql=”delete from student where StuID=”+”+StuID+”;SqlCommand cmd=new SqlCommand(sql,conn);int iRows=cmd.ExecuteNonQuery();if(iRows0)Console.WriteLine(“success”);else Console.WriteLine(“failed”);if(conn.State=ConnectionState.Open)conn.Close();S
10、tring ConnStr=System.Configuration.ConfigurationManager.ConnectionStringsconnection.ToString();SqlConnection conn=new SqlConnection();conn.ConnectionString=ConnStr;if(conn.State=ConnectionState.Closed)conn.Open();Console.WriteLine(请输入要更新的系号请输入要更新的系号);int DepID=Convert.ToInt32(Console.ReadLine();Cons
11、ole.WriteLine(输入新系名输入新系名);string DepName=Console.ReadLine();string sql=update Department set DepName=+DepName+where DepID=+DepID.ToString();SqlCommand cmd=new SqlCommand(sql,conn);int iRows=cmd.ExecuteNonQuery();if(iRows0)Console.WriteLine(success);else Console.WriteLine(failed);if(conn.State=Connec
12、tionState.Open)conn.Close();输入学号,课程号,将输入学号,课程号,将SC表对应的成绩加表对应的成绩加5分。分。string ConnStr=System.Configuration.ConfigurationManager.ConnectionStringsconnection.ToString();SqlConnection conn=new SqlConnection();conn.ConnectionString=ConnStr;if(conn.State=ConnectionState.Closed)conn.Open();Console.WriteLine
13、(请输入学号请输入学号);string StuID=Console.ReadLine();Console.WriteLine(输入课程号输入课程号);int CourseID=Convert.ToInt32(Console.ReadLine();string sql=update SC set Score=Score+5 where StuID=+StuID+and CourseID=+CourseID.ToString();SqlCommand cmd=new SqlCommand(sql,conn);int iRows=cmd.ExecuteNonQuery();if(iRows 0)Co
14、nsole.WriteLine(success);else Console.WriteLine(failed);if(conn.State=ConnectionState.Open)conn.Close();1.创建创建DBHelper.cs文件,加入函数。文件,加入函数。public static void ExecuteNonQuery()string ConnStr=System.Configuration.ConfigurationManager.ConnectionStringsconnection.ToString();SqlConnection conn=new SqlConne
15、ction();conn.ConnectionString=ConnStr;if(conn.State=ConnectionState.Closed)conn.Open();SqlCommand cmd=new SqlCommand(sql,conn);int iRows=cmd.ExecuteNonQuery();if(iRows 0)Console.WriteLine(success);else Console.WriteLine(failed);if(conn.State=ConnectionState.Open)conn.Close();string sql2.根据更新语句,调用根据更
16、新语句,调用ExecuteNonQuery函数。函数。public static void Main()Console.WriteLine(请输入学号请输入学号);string StuID=Console.ReadLine();Console.WriteLine(输入课程号输入课程号);int CourseID=Convert.ToInt32(Console.ReadLine();string sql=update SC set Score=Score+5 where StuID=+StuID+and CourseID=+CourseID.ToString();DBHelper.Execute
17、NonQuery(sql);当连接打开后出错了,导致连接无法关闭,如何解决?当连接打开后出错了,导致连接无法关闭,如何解决?public static void ExecuteNonQuery(string sql)string ConnStr=System.Configuration.ConfigurationManager.ConnectionStringsconnection.ToString();SqlConnection conn=new SqlConnection();conn.ConnectionString=ConnStr;if(conn.State=ConnectionSta
18、te.Closed)conn.Open();SqlCommand cmd=new SqlCommand(sql,conn);int iRows=cmd.ExecuteNonQuery();if(iRows 0)Console.WriteLine(success);else Console.WriteLine(failed);if(conn.State=ConnectionState.Open)conn.Close();可以使用可以使用trycatchfinally结构解决结构解决SqlConnection conn=null;try string ConnStr=System.Configur
19、ation.ConfigurationManager.ConnectionStringsconnection.ToString();conn=new SqlConnection();conn.ConnectionString=ConnStr;if(conn.State=ConnectionState.Closed)conn.Open();SqlCommand cmd=new SqlCommand(sql,conn);int iRows=cmd.ExecuteNonQuery();if(iRows 0)Console.WriteLine(success);else Console.WriteLi
20、ne(failed);catch Console.WriteLine(error);finally if(conn.State=ConnectionState.Open)conn.Close();SqlCommand类中有三个函数:类中有三个函数:1.ExecuteReader2.ExecuteNonQuery3.ExecuteScalar示例:统计示例:统计SC表表A0001号同学的均分,显示出来。号同学的均分,显示出来。String ConnStr=System.Configuration.ConfigurationManager.ConnectionStringsconnection.T
21、oString();SqlConnection conn=new SqlConnection();conn.ConnectionString=ConnStr;if(conn.State=ConnectionState.Closed)conn.Open();string sql=select avg(Score)from SC where StuID=A00001;SqlCommand cmd=new SqlCommand(sql,conn);double avgScore=(double)cmd.ExecuteScalar();Console.WriteLine(avgScore);if(co
22、nn.State=ConnectionState.Open)conn.Close();.NET框架数据提供程序框架数据提供程序Data AdapterSelect CommandInsert CommandUpdateCommandDeleteCommandDataReaderCommandConnectionDBDataSetDataTableCollectionDataTableDataRowCollectionDataColumnCollectionConstraintCollectionDataRelationCollection1.创建连接;创建连接;2.创建创建SqlDataAda
23、pter对象;对象;3.创建创建DataSet对象;对象;4.通过通过SqlDataAdapter将数据库的数据读入将数据库的数据读入DataSet,并断开连接;,并断开连接;5.如读数据,则将如读数据,则将DataSet中内容绑定到控件;如修改数据,则在中内容绑定到控件;如修改数据,则在DataSet中进行修改;中进行修改;6.将修改的数据更新到数据库。将修改的数据更新到数据库。string conStr=System.Configuration.ConfigurationManager .ConnectionStringsconnection.ToString();SqlConnectio
展开阅读全文