ImageVerifierCode 换一换
格式:PPT , 页数:49 ,大小:667KB ,
文档编号:5818764      下载积分:15 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-5818764.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(momomo)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(《sql server数据库应用与实践教程》课件第13章 ADO.NET访问数据库.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

《sql server数据库应用与实践教程》课件第13章 ADO.NET访问数据库.ppt

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

24、n conn=new SqlConnection();conn.ConnectionString=conStr;SqlDataAdapter概念:概念:SqlDataAdapter是是 DataSet和和 SQL Server之间的桥接器,通过对数之间的桥接器,通过对数据源使用适当的据源使用适当的SQL语句填充语句填充(Fill)数据集(数据集(DataSet)和更新)和更新(Update)数据库。数据库。C#提供了提供了SqlDataAdapter类:类:public class SqlDataAdapter public string sql;public SqlConnection co

25、nn;public SqlDataAdapter (string sql,SqlConnection conn)public void Fill(DataSet ds,String TableName)public void Update(DataTable dt)string conStr=System.Configuration.ConfigurationManager .ConnectionStringsconnection.ToString();SqlConnection conn=new SqlConnection();conn.ConnectionString=conStr;str

26、ing sql=select*from student;SqlDataAdapter adapter=new SqlDataAdapter(sql,conn);DataSet概念:概念:DataSet是一个内存数据库,可以包含一个或多个表(是一个内存数据库,可以包含一个或多个表(DataTable)。)。DataRow和和DataColumn就是表中的行和列。就是表中的行和列。实例化实例化DataSet对象:对象:DataSet ds=new DataSet();string conStr=System.Configuration.ConfigurationManager .Connectio

27、nStringsconnection.ToString();SqlConnection conn=new SqlConnection();conn.ConnectionString=conStr;string sql=select*from student;SqlDataAdapter adapter=new SqlDataAdapter(sql,conn);DataSet ds=new DataSet();string conStr=System.Configuration.ConfigurationManager .ConnectionStringsconnection.ToString(

28、);SqlConnection conn=new SqlConnection();conn.ConnectionString=conStr;string sql=select*from student;SqlDataAdapter adapter=new SqlDataAdapter(sql,conn);DataSet ds=new DataSet();adapter.Fill(ds,“student”);string conStr=System.Configuration.ConfigurationManager .ConnectionStringsconnection.ToString()

29、;SqlConnection conn=new SqlConnection();conn.ConnectionString=conStr;string sql=select*from student;SqlDataAdapter adapter=new SqlDataAdapter(sql,conn);DataSet ds=new DataSet();adapter.Fill(ds,“student”);dataGridView1.DataSource=ds.Tables“student”;填充数据集:填充数据集:1.string conStr=System.Configuration.Con

30、figurationManager.ConnectionStringsconnection.ToString();2.SqlConnection conn=new SqlConnection();3.conn.ConnectionString=conStr;4.string sql=select*from student;5.SqlDataAdapter adapter=new SqlDataAdapter(sql,conn);6.DataSet ds=new DataSet();7.adapter.Fill(ds,“student”);插入数据:插入数据:SqlCommandBuilder

31、cmdBuilder=new SqlCommandBuilder(adapter);DataRow row=ds.Tables“student”.NewRow();row“StuID=“A00010”;row“StuName=jack;row“StuAge”=21;row“StuSex”=“男男”;row“StuCity”=“北京市北京市”;row“StuScore”=100;row“DepID”=1;ds.Tables“student”.Rows.Add(row);adapter.Update(ds.Tables“student”);为程序添加为程序添加try-catch结构。提示执行成功还

32、是失败。结构。提示执行成功还是失败。删除数据:删除数据:/填充数据集填充数据集1.SqlCommandBuilder cmdBuilder=new SqlCommandBuilder(adapter);2.foreach(DataRow row1 in ds.Tables“student”.Rows)3.4.if(row1“StuID.ToString().Trim()=“A00010)5.6.row1.Delete();7.break;8.9.10.adapter.Update(ds.Tables“student”);为程序添加为程序添加try-catch结构。提示执行成功还是失败。结构。提

33、示执行成功还是失败。删除数据:删除数据:/填充数据集填充数据集1.SqlCommandBuilder cmdBuilder=new SqlCommandBuilder(adapter);2.foreach(DataRow row1 in ds.Tables“student”.Rows)3.4.if(row1“StuID.ToString().Trim()=“A00006)5.6.row1“StuName”=“new name”;7.break;8.9.10.adapter.Update(ds.Tables“student”);为程序添加为程序添加try-catch结构。提示执行成功还是失败。结

34、构。提示执行成功还是失败。访问数据库可分为访问数据库可分为5个步骤:个步骤:1.创建连接,连接到数据库;创建连接,连接到数据库;2.打开连接;打开连接;3.创建命令对象;创建命令对象;4.执行命令对象;执行命令对象;5.关闭连接。关闭连接。使用使用WINDOWS方式连接串:方式连接串:string ConnStr=Data Source=SQLSERVER01;Initial Catalog=HR;Integrated Security=true;使用使用SQL SERVER验证方式连接串:验证方式连接串:string ConnStr=Data Source=SQLSERVER01;Initi

35、al Catalog=HR;User ID=sa;Password=password;C#中提供了创建连接的类:中提供了创建连接的类:public class SqlConnection public string ConnectionString;public SqlConnection()public void Open()public void Close()思考:如何使用代码实现创思考:如何使用代码实现创建连接对象,及打开连接?建连接对象,及打开连接?SqlConnection conn=new SqlConnection();conn.ConnectionString=ConnStr

36、;conn.Open();注:使用注:使用C#提供的连接数据库类,需引入命名空间提供的连接数据库类,需引入命名空间using System.Data.SqlClient;C#中提供了创建命令的类:中提供了创建命令的类:public class SqlCommand public SqlConnection Connection;public string CommandText;public SqlCommand(string CommandText,SqlConnection Connection)思考:如何使用代码实现创思考:如何使用代码实现创建命令对象?建命令对象?string sql=

37、“select*from student”;SqlCommand cmd=new SqlCommand(sql,conn);C#中提供了创建命令的类:中提供了创建命令的类:public class SqlCommand public SqlConnection Connection;public string CommandText;public SqlCommand(string CommandText,SqlConnection Connection)/执行查询语句执行查询语句public SqlDataReader ExecuteReader()/执行添加,删除,更新语句执行添加,删除,

38、更新语句public int ExecuteNonQuery()思考:如何使用代码执行命思考:如何使用代码执行命令?令?SqlDataReader reader=cmd.ExecuteReader();public class SqlDataReader/逐行获取缓存中的数据,成功为逐行获取缓存中的数据,成功为true,否则为,否则为false;public bool Read()思考:如何逐行获取数据显示在控制台?思考:如何逐行获取数据显示在控制台?while(reader.Read()Console.WriteLine(“学号:学号:0,姓名:姓名:1”,reader0.ToString(

39、),reader1.ToString();reader.Close();conn.Close();SqlConnection conn=new SqlConnection();conn.ConnectionString=ConnStr;conn.Open();string sql=“select*from student”;SqlCommand cmd=new SqlCommand(sql,conn);SqlDataReader reader=cmd.ExecuteReader();while(reader.Read()Console.WriteLine(“学号:学号:0,姓名:姓名:1”,r

40、eader0.ToString(),reader1.ToString();reader.Close();conn.Close();C#中提供了创建命令的类:中提供了创建命令的类:public class SqlCommand public SqlConnection Connection;public string CommandText;public SqlCommand(string CommandText,SqlConnection Connection)/执行查询语句执行查询语句public SqlDataReader ExecuteReader()/执行添加,删除,更新语句执行添加,

41、删除,更新语句public int ExecuteNonQuery()SqlConnection conn=new SqlConnection();conn.ConnectionString=ConnStr;conn.Open();Console.WriteLine(“请输入要删除的学号请输入要删除的学号”);string StuID=Console.ReadLine();string sql=”delete from student where StuID=”+”+StuID+”;SqlCommand cmd=new SqlCommand(sql,conn);int iRows=cmd.Ex

42、ecuteNonQuery();if(iRows0)Console.WriteLine(“success”);else Console.WriteLine(“failed”);conn.Close();使用使用C#完成添加,修改数据的程序。完成添加,修改数据的程序。1.string ConnStr=Data Source=HUANG-PCSQLEXPRESS;Initial Catalog=SchoolInfo;User ID=sa;Password=123456“;2.SqlConnection conn=new SqlConnection();3.conn.ConnectionString

43、=ConnStr;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 iRows=

44、cmd.ExecuteNonQuery();11.if(iRows0)12.Console.WriteLine(success);13.else 14.Console.WriteLine(failed);15.conn.Close();1.string ConnStr=Data Source=HUANG-PCSQLEXPRESS;Initial Catalog=SchoolInfo;User ID=sa;Password=123456“;2.SqlConnection conn=new SqlConnection();3.conn.ConnectionString=ConnStr;4.conn

45、.Open();5.Console.WriteLine(请输入要更新的系号请输入要更新的系号);6.int DepID=Convert.ToInt32(Console.ReadLine();7.Console.WriteLine(输入新系名输入新系名);8.string DepName=Console.ReadLine();9.string sql=update Department set DepName=+DepName+where DepID=+DepID.ToString();10.SqlCommand cmd=new SqlCommand(sql,conn);11.int iRows

46、=cmd.ExecuteNonQuery();12.if(iRows0)Console.WriteLine(success);13.else Console.WriteLine(failed);conn.Close();输入学生的学号、课程名和修改后的成绩,将输入学生的学号、课程名和修改后的成绩,将SC表相应的记录成绩修改。表相应的记录成绩修改。string conStr=System.Configuration.ConfigurationManager.ConnectionStringsconnection.ToString();SqlConnection conn=new SqlConne

47、ction();conn.ConnectionString=conStr;conn.Open();string stuID=Console.ReadLine();string courseName=Console.ReadLine();int score=Convert.ToInt32(Console.ReadLine();string sql=update SC set score=+score.ToString()+where StuID=+stuID+and CourseID=(select CourseID from Course where CourseName=+courseName+);SqlCommand cmd=new SqlCommand(sql,conn);int rows=cmd.ExecuteNonQuery();if(rows 0)Console.WriteLine(success);else Console.WriteLine(failed);conn.Close();

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|