欢迎来到163文库! | 帮助中心 精品课件PPT、教案、教学设计、试题试卷、教学素材分享与下载!
163文库
全部分类
  • 办公、行业>
  • 幼教>
  • 小学>
  • 初中>
  • 高中>
  • 中职>
  • 大学>
  • 各类题库>
  • ImageVerifierCode 换一换
    首页 163文库 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 文档编号:5818764       资源大小:667KB        全文页数:49页
    • 资源格式: PPT        下载积分:15文币     交易提醒:下载本文档,15文币将自动转入上传用户(momomo)的账号。
    微信登录下载
    快捷注册下载 游客一键下载
    账号登录下载
    二维码
    微信扫一扫登录
    下载资源需要15文币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    优惠套餐(点此详情)
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、试题类文档,标题没说有答案的,则无答案。带答案试题资料的主观题可能无答案。PPT文档的音视频可能无法播放。请谨慎下单,否则不予退换。
    3、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者搜狗浏览器、谷歌浏览器下载即可。。

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


    注意事项

    本文(《sql server数据库应用与实践教程》课件第13章 ADO.NET访问数据库.ppt)为本站会员(momomo)主动上传,其收益全归该用户,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!




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


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


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

    163文库