




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
201801,.,网站设计与管理配套教案,201801,.,第6章 使用ADO.NET操作数据库,学习目标: 通过本章的学习,你能够学会:1了解数据访问综述2掌握数据查询与显示的用法。3掌握数据插入、删除、更新的方法4、掌握数据显示控件的组合应用。,201801,.,第6章 使用ADO.NET操作数据库,在本章后续的介绍当中将通过手工编写代码的方式实现数据库的删除、插入、修改与查询等四项基本操作,通过这四项基本操作的手工编码的介绍,使读者增强对程序的理解,培养更强的程序编写能力。,201801,.,第6章 使用ADO.NET操作数据库,最终效果:设计学生资料管理系统,201801,.,数据提供程序,ADO.NET有多种数据提供程序,分别是:SQL Server.NET:SQL Server.NET用来访问SQL Server2000(包括)以上的版本。OleDb.NET数据提供程序:OleDb.NET用来访问SQL Server7.0(包括)以下的版本以及其他数据。Oracle Db.NET数据提供程序:OracleDb.NET专门用来访问Oracle8i、Oracle9i、Oracle10g以及以上的版本。ODBC.NET数据提供程序:ODBC.NET用来访问ODBC数据源。,201801,.,ASP.NET应用程序的结构,201801,.,.NET数据提供程序,201801,.,6.2 使用ADO.NET操作数据库,使用ADO.NET操作数据库的基本步骤:在文件开头引入相应的命名空间,如System.Data.SqlClient;使用Connection对象与数据库服务器进行连接;定义SQL语句,创建、设置Command对象;设置相应参数;打开连接,执行SQL命令,如果要返回查询结果,则要创建DataAdapter并获取相应数据;关闭数据库连接。,201801,.,6.2.1删除表中记录,删除记录的步骤是:在文件开头引入相应的命名空间,如System.Data.SqlClient;使用Connection对象与数据库服务器进行连接;定义SQL语句,创建、设置Command对象;设置相应参数;打开连接,执行SQL命令;关闭数据库连接。,201801,.,任务一:编程实现删除KATE的记录,任务效果:删除姓名是“KATE”的记录,删除成功后提示成功,若表中查无此人,则提示删除失败。,201801,.,任务一:编程实现删除KATE的记录,设置应用程序配置文件:Web.Config将其中中存放数据库配置代码,,201801,.,Web.Config,“Asp.Net 配置”选项。 设置和注释的完整列表在 ments 中,该文件通常位于 WindowsMicrosoft.NetFrameworkv2.xConfig 中- ,201801,.,获得数据连接字符串,201801,.,201801,.,201801,., ,201801,.,del.aspx, 无标题页 ,201801,.,del.aspx.cs,using System;using System.Data;using System.Configuration;using System.Data.SqlClient;public partial class del : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) string strCnn = ConfigurationManager.ConnectionStringssqlConn.ConnectionString; SqlConnection myConn = new SqlConnection(strCnn); SqlCommand command = new SqlCommand(delete from student where 姓名=KATE, myConn); myConn.Open(); if (command.ExecuteNonQuery() != 0) Response.Write(操作成功,点此返回首页); else Response.Write(操作失败,点此返回首页); myConn.Close(); ,201801,.,任务一:编程实现删除KATE的记录,核心代码:string strCnn=ConfigurationManager.ConnectionStrings sqlConn.ConnectionString;SqlConnection myConn = new SqlConnection(strCnn);SqlCommand command = new SqlCommand(delete from student where 姓名= KATE, myConn); myConn.Open();command.ExecuteNonQuery() ;myConn.Close();,201801,.,任务一:编程实现删除KATE的记录,string strCnn=ConfigurationManager.ConnectionStrings sqlConn.ConnectionString;SqlConnection myConn = new SqlConnection(strCnn);SqlCommand command = new SqlCommand(delete from student where 姓名= KATE, myConn); myConn.Open();if (command.ExecuteNonQuery() != 0)Response.Write(操作成功,点此返回首页); else Response.Write(操作失败,点此返回首页);myConn.Close();,201801,.,6.2.2插入记录,插入新记录的步骤与删除记录类似,只是将SQL语句改为INSERT INTO,其它参数相应做些调整。任务二:插入一条指定记录。任务效果:在表student中插入新记录,姓名=”KATE”,年龄=18,性别女,201801,.,6.2.2插入记录,string strCnn = ConfigurationManager.ConnectionStringssqlConn.ConnectionString;SqlConnection myConn = new SqlConnection(strCnn);SqlCommand command = new SqlCommand(insert into student(姓名,年龄,性别) values(KATE,18,女),myConn); myConn.Open();/打开连接,执行操作 if (command.ExecuteNonQuery() != 0) Response.Write(操作成功,点此返回首页); elseResponse.Write(操作失败,点此返回首页);myConn.Close();,201801,.,6.2.3更新记录,更新记录的步骤与插入记录类似,只是将SQL语句改为UPDATE,其它参数相应做些调整。任务三:修改指定记录的值。任务效果:将表student中将姓名是KATE的年龄改为18,201801,.,6.2.3更新记录,string strCnn = ConfigurationManager.ConnectionStringssqlConn.ConnectionString; SqlConnection myConn = new SqlConnection(strCnn); SqlCommand command = new SqlCommand(update student set 年龄=18 where 姓名=MIKE, myConn);/确保的MIKE的记录。/打开连接,执行操作myConn.Open();if (command.ExecuteNonQuery() != 0) Response.Write(操作成功,点此返回首页);else Response.Write(操作失败,点此返回首页);myConn.Close();,201801,.,6.2.4查询记录,基本步骤:在文件开头引入相应的命名空间,如System.Data.SqlClient;使用Connection对象与数据库服务器进行连接;定义SQL语句,创建、设置Command对象;设置相应参数;打开连接,执行SQL命令,创建DataAdapter并获取相应数据,绑定到网页上的显示控件;关闭数据库连接。,201801,.,6.2.4查询记录,查询类似于前面的操作,但要用相关显示控件显示出来,一般可以使用DataAdapter对象从数据源中获取数据,填充到DataSet中的表,最后将数据绑定到显示控件完成数据显示,也可以使用DataReader对象从数据库获取仅向前的只读数据流,本教材中主要使用第一种方法。,201801,.,6.2.4查询记录,DataAdapter(数据适配器)的作用就是在DataSet对象(DataSet就好像一个远程数据库的副本,它能表现出数据库的所有结构)和数据源之间架起了一座“桥梁”,因此命名为“数据适配器”。DataAdapter连接到数据库并将数据加载到DataSet中,同时它又连接回数据库,根据DataSet所执行的操作来更新数据库中的数据。DataSet是ADO.NET断开式结构的,通过DataAdapter对象从数据源得到数据。,201801,.,6.2.4查询记录,任务四:使用代码方式将指定表中数据显示在GridView中。任务效果:查询Student表中所有数据,显示在GridView中。,201801,.,6.2.4查询记录,string strCnn = ConfigurationManager.ConnectionStringssqlConn.ConnectionString;SqlConnection myConn = new SqlConnection(strCnn);SqlDataAdapter da = new SqlDataAdapter(select * from student, myConn);DataSet ds = new DataSet(); da.Fill(ds); / 将DataReader对象绑定到GridView1控件 GridView1.DataSource = ds.Tables0;GridView1.DataBind();myConn.Close();,201801,.,6.3数据库操作类的封装,任务五:建立一个数据库操作类。程序文件:App_CodeDbManager.cs, App_CodeDbManagerAccess.cs。任务效果:封装数据库操作成一个类,简化数据访问。任务实现步骤:1、在Web.Config文件中添加到数据库的连接。,201801,.,6.3数据库操作类的封装,如果是连接到SQL SERVER,添加的数据库连接如下: ,201801,.,6.3数据库操作类的封装,如果是连接到SQLSERVERExpress数据库,添加的数据库连接如下: ,201801,.,6.3数据库操作类的封装,如果是连接到Access,添加如下内容 :,201801,.,201801,.,DbManager.cs,using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;/ / DBManager 是SQL server 数据库操作类/ public class DbManager public DbManager() ,201801,.,添加类方法1,public static DataTable ExecuteQuery(string strSQL) string ConnectionString = ConfigurationManager.ConnectionStringssqlConn.ConnectionString; SqlConnection conn = new SqlConnection(ConnectionString); /DataAdapter自动打开数据库连接,可以不用conn.Open(); try SqlDataAdapter adapter = new SqlDataAdapter(strSQL, conn); DataSet ds = new DataSet(); adapter.Fill(ds); return ds.Tables0; finally if (conn.State = ConnectionState.Open) conn.Close(); ,201801,.,添加类方法2,public static int ExecuteNonQuery(string strSQL) string ConnectionString = ConfigurationManager.ConnectionStringssqlConn.ConnectionString; SqlConnection conn = new SqlConnection(ConnectionString); conn.Open(); try SqlCommand cmd = new SqlCommand(strSQL, conn); return (cmd.ExecuteNonQuery(); finally if (conn.State = ConnectionState.Open) conn.Close(); ,201801,.,添加类方法3,public static object ExecuteScalar(string strSQL) string ConnectionString = ConfigurationManager.ConnectionStringssqlConn.ConnectionString; SqlConnection conn = new SqlConnection(ConnectionString); conn.Open(); try SqlCommand cmd = new SqlCommand(); cmd = conn.CreateCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = strSQL; return cmd.ExecuteScalar(); finally if (conn.State = ConnectionState.Open) conn.Close(); ,201801,.,6.3数据库操作类的封装,public static DataTable ExecuteQuery(string strSQL) string ConnectionString = ConfigurationManager.ConnectionStrings sqlConn.ConnectionString;SqlConnection conn = new SqlConnection(ConnectionString);try SqlDataAdapter adapter = new SqlDataAdapter(strSQL, conn); DataSet ds = new DataSet(); adapter.Fill(ds); return ds.Tables0;finally if (conn.State = ConnectionState.Open)conn.Close(); ,201801,.,6.3数据库操作类的封装,public static int ExecuteNonQuery(string strSQL) string ConnectionString = ConfigurationManager.ConnectionStringssqlConn.ConnectionString;SqlConnection conn = new SqlConnection(ConnectionString);conn.Open();try SqlCommand cmd = new SqlCommand(strSQL, conn); return (cmd.ExecuteNonQuery();finally if (conn.State = ConnectionState.Open)conn.Close(); ,201801,.,6.3.1数据库操作类的封装,public static object ExecuteScalar(string strSQL) string ConnectionString = ConfigurationManager.ConnectionStringssqlConn.ConnectionString;SqlConnection conn = new SqlConnection(ConnectionString);conn.Open();try SqlCommand cmd = new SqlCommand(); cmd = conn.CreateCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = strSQL; return cmd.ExecuteScalar();finally if (conn.State = ConnectionState.Open)conn.Close();,201801,.,6.3.2数据库操作类的应用,任务六:使用类操作数据库。任务效果:应用数据库操作类实现查询student表中所有数据,并将查询到的所有记录显示到GridView控件中。,201801,.,6.3.2数据库操作类的应用,任务实现步骤:、新建网页Web.Config,添加数据库连接字符串: ,201801,.,6.3.2数据库操作类的应用,任务实现步骤:、新建网页selectAllClass.aspx,拖拽一个GridView控件到网页上,双击空白处进入selectAllClass.aspx.cs中.protected void Page_Load(object sender, EventArgs e) DataTable table=DbManager.ExecuteQuery(select * from student);GridView1.DataSource = table;GridView1.DataBind(); ,201801,.,6.4自定义分页,GridView自定义分页1、新建GridView.aspx,拖放一个GridView控件,同时拖放一个标签,四个LinkButton,一个文本框,一个按钮。,201801,.,protected void Page_Load(object sender, EventArgs e) int iPageSize = 10; /每页显示的记录数 /下面这一行更改为自己的查询语句 string strSQL = SELECT 订单ID, 客户ID, 雇员ID,订购日期 FROM 订单; DataTable dt = DbManagerAccess.ExecuteQuery(strSQL); PagedDataSource pg = new PagedDataSource(); pg.DataSource = dt.DefaultView; pg.AllowPaging = true; pg.PageSize = iPageSize; int iTotalPage = pg.PageCount; int iCurPage = Convert.ToInt32(Request.QueryStringpage); if (iCurPage iTotalPage) iCurPage = iTotalPage; pg.CurrentPageIndex = iCurPage - 1; Label1.Text = 第 + iCurPage.ToString() + 页/共 + iTotalPage.ToString() + 页;LinkButton1.PostBackUrl = Request.CurrentExecutionFilePath + ?page=1;LinkButton2.PostBackUrl = Request.CurrentExecutionFilePath + ?page=+ (iCurPage - 1);LinkButton4.PostBackUrl = Request.CurrentExecutionFilePath + ?page=+ pg.PageCount;LinkButton3.PostBackUrl = Request.CurrentExecutionFilePath + ?page=+ (iCurPage + 1);GridView1.DataSource = pg;GridView1.DataBind();,2、在GridView.aspx.cs文件中的要添加一些代码,201801,.,Button1_Click,/ / 单击跳转时执行 / protected void Button1_Click(object sender, EventArgs e) Response.Redirect(Request.CurrentExecutionFilePath + ?page= + TextBox1.Text); ,201801,.,6.4.2 DataList自定义分页,任务八:利用DataList分页显示订单表中的记录。,201801,.,201801,., 首页 上一页 下一页 最后一页 ,201801,.,Cs文件,using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;,201801,.,protected void Page_Load(object sender, EventArgs e) int iPageSize = 10;string strSQL = SELECT 订单ID, 客户ID, 雇员ID, 订购日期 FROM 订单 ORDER BY 订单ID DESC; DataTable dt = DbManagerAccess.ExecuteQuery(strSQL); PagedDataSource pg = new PagedDataSource(); pg.DataSource = dt.DefaultView; pg.AllowPaging = true; pg.PageSize = iPageSize; int iTotalPage = pg.PageCount; int iCurPage = Convert.ToInt32(Request.QueryStringpage); if (iCurPage iTotalPage) iCurPage = iTotalPage; pg.CurrentPageIndex = iCurPage - 1; Label1.Text = 第 + iCurPage.ToString() + 页/共 + iTotalPage.ToString() + 页; LinkButton1.PostBackUrl = Request.CurrentExecutionFilePath + ?page=1; LinkButton2.PostBackUrl = Request.CurrentExecutionFilePath + ?page= + (iCurPage - 1); LinkButton4.PostBackUrl = Request.CurrentExecutionFilePath + ?page= + pg.PageCount; LinkButton3.PostBackUrl = Request.CurrentExecutionFilePath + ?page= + (iCurPage + 1); DataList1.DataSource = pg; DataList1.DataBind(); ,201801,.,/ 单击跳转时执行protected void Button1_Click(object sender, EventArgs e) Response.Redirect(Request.CurrentExecutionFilePath + ?page= + TextBox1.Text); ,201801,.,6.4.3 Repeater自定义分页,Repeater控件是最灵活的显示控件,可以使用非表格形式显示数据,并且能让它实现分页,将大大拓展Repeater的功能。任务实现步骤:1、新建Repeater.aspx,拖放一个Repeater控件,同时拖放一个标签,四个LinkButton,一个文本框,一个按钮。2、新建一个Repeater.aspx,添加一个Repeater控件Reperter1,对应的将repeater.aspx.cs中的GridView1修改为Repeater1即可。3、输入相关代码:、设计Repeater.aspx的显示界面。,201801,.,201801,., 订单 订购日期 客户id 雇员id 首页 上一页 下一页 最后一页 ,201801,.,pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年关于幼儿园主题活动标准教案
- 艾灸烫伤的预防与处理
- 肾病综合征护理小讲课
- 药品生产监督管理办法2024解读
- 2025年岳阳市高三语文1月质量监测试卷(一)附答案解析
- 2025年护士执业资格考试题库(社区护理学专项)-慢性病社区护理试题集
- 2025年小学英语毕业考试语法专项突破模拟卷:实战演练
- 2025年小学语文毕业升学考试句式变换与修辞创新应用卷
- 2025年大学统计学期末考试题库:时间序列分析专题试题
- 2025年安全生产考试题库:建筑施工安全培训教材试题
- 2025年辽宁省盘锦市大洼区招聘招商人员30人高频重点模拟试卷提升(共500题附带答案详解)
- 资阳高新投资集团有限公司招聘更正笔试参考题库附带答案详解
- 2025年安徽粮食工程职业学院单招综合素质考试题库完整
- 虚拟实验技术发展-深度研究
- 2024江苏盐城市交通投资建设控股集团有限公司招聘笔试参考题库附带答案详解
- 《十万个为什么》整本书阅读-课件-四年级下册语文(统编版)
- AQ6111-2023个体防护装备安全管理规范
- 2022年拖拉机驾驶人考试参考题库(含答案)
- 铁路建设项目施工企业信用评价办法(铁总建设〔2018〕124号)
- 制作的不倒翁(课堂PPT)
- word模板之请柬1
评论
0/150
提交评论