书签 分享 收藏 举报 版权申诉 / 49
上传文档赚钱

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

  • 上传人(卖家):momomo
  • 文档编号:5818764
  • 上传时间:2023-05-11
  • 格式:PPT
  • 页数:49
  • 大小:667KB
  • 【下载声明】
    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

    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();

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《sql server数据库应用与实践教程》课件第13章 ADO.NET访问数据库.ppt
    链接地址:https://www.163wenku.com/p-5818764.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


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

    163文库