《Web数据库的操作》PPT课件.ppt_第1页
《Web数据库的操作》PPT课件.ppt_第2页
《Web数据库的操作》PPT课件.ppt_第3页
《Web数据库的操作》PPT课件.ppt_第4页
《Web数据库的操作》PPT课件.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Web数据库的操作,1 数据库访问流程 2 数据库的连接 3 数据的查询控制 4 数据的添加、删除和修改,1 数据库访问流程,进行数据源操作的步骤如下: (1)创建与数据库的连接,可以使用ADO中的Connection对象或RecordSet对象的相关属性和方法。 (2)设定要操作数据库的命令,可以使用ADO中的Connection对象、Command对象或RecordSet对象的相关方法和属性来完成。 (3)执行命令,可以使用ADO中的Connection对象、Command对象或RecordSet对象的相关方法。 (4)得到数据后,就可以执行对数据的浏览、增加、删除、修改等操作,这一步通常使用RecordSet对象的有关方法和属性完成。 (5)关闭数据库,清除有关对象。,ADO存取数据源流程,2 数据库的连接,(1)在Connection对象中设置ConnectionString参数时,可以通过设置系统数据源(System DSN),即通过设置ODBC的方法来连接数据库。在ASP中利用DSN连接数据库的代码如下: Set conn = Server.CreateObject(“ADODB.Connection“) conn.Open “DSN=txl;UID=sa;PWD=;Database=tx“ (2)如果不采用DSN连接数据库,在设置ConnectionString参数时,可以采用直接指定ODBC驱动程序连接数据库,连接SQL Server数据库的代码如下: Set conn = Server.CreateObject(“ADODB.Connection“) strProvider = “Driver=SQL Server; Server=zjf;Database=tx;UID=sa;PWD=;“ conn.Open strProvider,(3)通过OLE DB连接。代码如下: Set conn = Server.CreateObject(“ADODB.Connection“) strPro=“Provider=sqloledb;Data Source=zjf;Initial Catalog=tx;User ID=sa; Password=; “ conn.Open sTRPro (4)在其他对象中,也可以通过设置ActiveConnection参数,完成对数据源连接的设置。以常用的RecordSet对象为例,可以使用该对象的Open方法,利用设置好的ActiveConnection参数完成对数据库的连接,程序代码如下: Set rs=Server.CreateObject(“ADODB.RecordSet“) rs.Open “t_student“,“Provider=sqloledb;Data Source=zjf;Initial Catalog“ “,adOpenStatic,adLockreadOnly,adCmdTable,3 数据的查询控制,数据库在网络中的应用大部分集中在数据的查询操作上。数据查询需要使用ADO对象中的Connection对象和RecordSet对象。 进行数据查询时,主要使用SQL语句中的Select语句,通过该语句就可以得到所要查询的数据记录。 下面的例子将介绍如何利用Session对象和RecordSet对象的AbsolutePosition属性以一页或一条为单位来浏览查询结果。,例1: 第1步:建立ASP查询,文件名为select.asp。在这个查询中,使用了Session对象存储RecordSet对象,数据库的连接使用了RecordSet对象的Open方法。程序代码如下: %设置每一页所要显示的记录条数,这里为9条。 Session(“flag“)=9 用RecordSet对象的Open方法连接数据库 Set Session(“rs“)=Server.CreateObject(“Adodb.recordSet“) Constr=“DSN=db1;UID=user;PWD=123;Database=db1 “,Session(“rs“).cursorlocation=aduseclient sql=“select * from student order by xh“ 利用RecordSet对象的Open方法创建记录集 Session(“rs“).Open sql,Constr,adOpenkeySet,adlockreadonly,adcmdtext % 学号 姓名,性别 电话 籍贯 班级 民族 “ 记录结束时,当前数据指针在RecordSet对象的位置 Session(“End“)=Session(“rs“).Absoluteposition 其中Session(“rs“).fields.count表示表的字段数 For i=0 To Session(“rs“).fields.count-1,把当前的数据记录显示出来 Response.Write “&Session(“rs“).fields(i).value&“ Next Response.Write “ 移到下一条数据记录,然后判断是否到表尾,如果是,则把数据指针移到表头 Session(“rs“).MoveNext If Session(“rs“).Eof Then Session(“rs“).MovePrevious Exit For End If Next Response.Write “ % ,第2步:建立具有翻页功能的ASP程序,文件名为link.asp。该文件将显示“上一页”、“下一页”、“开始记录”、“结束记录”和“数据总条数”等信息,并完成一定的链接关系,如“上一页”及“下一页”加入了超链接。 注意:当记录指针位于第一页时,“上一页”没有超链接,而当记录指针位于最后一页时,“下一页”没有超链接。,程序代码如下: 数据总条数:“&Session(“rs“).RecordCount&“ “ 判断是否到表尾或记录解释否,如果是,则只给“上一页”加上超链接 If(Session(“rs“).Eof)or(Session(“End“)=Session(“rs“).RecordCount) Then Response.Write “上一页|“ Response.Write “下一页“ 否则看是不是表头,如果是则只给“下一页”加上超链接 ElseIf(Session(“rs“).Bof)or(Session(“start“)=1) Then Response.Write “上一页|“ Response.Write “下一页“,其他情况,都加上超链接 Else Response.Write “上一页|“ Response.Write “下一页 “ End If Response.Write “开始记录:“&Session(“Start“)&“,结束记录:“&Session(“End“)&“。“ %,第3步:建立显示“上一页”或“下一页”功能的ASP程序,文件名为Query.asp。在该程序中将继续显示表中的数据。程序中使用MoveNext方法和MovePrevious方法完成数据指针的定位。代码如下: , 学号 姓名 性别 电话 籍贯 班级 民族 %,将数据指针移到要求的位置,先移到头,再使用MoveNext往下移 If Request(“Method“)=“Previous“ Then if session(“end“)=Session(“rs“).AbsolutePosition then count=session(“end“)-session(“start“)+9 else count=Session(“Flag“)*2 end if For i =1 To count Session(“rs“).MovePrevious If Session(“rs“).Bof Then Session(“rs“).MoveNext Exit For End If,Next End If 记录数据的起始位置。 Session(“Start“)=Session(“rs“).AbsolutePosition 显示表中指定数据 For j=0 To Session(“Flag“)-1 Response.Write “ Session(“End“)=Session(“rs“).AbsolutePosition 显示当前数据记录。 For i=0 To Session(“rs“).Fields.count-1 Response.Write “&Session(“rs“)(i).Value&“ Next,Response.Write “ Session(“rs“).MoveNext If Session(“rs“).Eof Then Session(“rs“).MovePrevious Exit For End If NEXT Response.Write “ % 通过浏览器运行程序select.asp,显示结果如图所示。,数据控制程序结果1:显示首记录,数据控制程序结果2:显示表中最后的数据记录,4 数据的添加、删除和修改,4.1 用户操作权限 4.2 数据的添加 4.3 数据的删除 4.4 数据的修改,4.1 用户操作权限,1确认用户的权限 可以先将用户的名称、密码和权限代码存放在一个数据表中,当用户登录网站时,确认用户名和密码后,从数据库中取得该用户的权限代码,然后利用Session变量标识该用户。假设用户的相关信息都存放在表users中,程序代码如下:,% 取得用户输入的用户名和密码,并去掉空格 strName = Trim(Request.Form(“Username“) strPassword = Trim(Request.Form(“Userpassword“) 创建与数据库的连接 Set objDBConn = Server.Createobject(“ADODB.Connection“) strProvider = “Provider=sqloledb;Data Source=zjf;Initial Catalog=txl;User ID=sa; Password=; “ objdbconn.Open strProvider SQL查询字符串,strSQL = “SELECT * FROM t_user WHERE UserName=“ & strName & “ Set objRS = objDBConn.Execute(strSQL) 检查用户 If objRS.EOF Then 无此用户 Response.Redirect “UserLogin.asp“ Else If Trim(objRS(“UserPassword“) = strPassword Then 密码正确,找到用户 Session(“UserName“) = objRS(“UserName“),Session(“UserLevel“) = objRS(“UserLevel“) 进入网站的网页 Response.Redirect “main.asp“ Else 密码错误 Response.Redirect “UserLogin.asp“ End If Set objRS = Nothing Set objDBConn = Nothing %,2确认用户的操作 在其他需要验证用户的页面通过该Session变量识别用户,代码如下: If Session(“UserLevel“) 1 Then Response.Redirect “Error.asp“ End If,用户没有操作权限,4.2 数据的添加,在网站中,经常有添加数据记录的需求。如一个提供电子邮件服务的网站,常常有人申请加入,这时就要用到添加用户资料的功能。添加数据记录的方法很多,这里主要介绍两种。一种是利用SQL语句中的Insert命令,另一种是利用ADO对象之一的RecordSet对象的AddNew方法。,例3: 第1步:首先创建一个添加数据的页面(INPUT.htm),在该页面中详细列出用户需输入的项目。其代码如下: 学 生 基 本 数 据 录 入 姓名: 学号:, 班级: 性别: 男 女 民族: ,籍贯: 联系电话: ,输入页面显示,第2步:建立表单处理程序(d_ins.asp),在该程序中利用SQL语句中的Insert命令添加数据记录。这里将示范使用Connection对象的Execute方法运行Insert命令。 % on error resume Next 取得用户输入的数据 t_name=request.form(“name“) t_number=request.form(“number“) t_class=request.form(“class“) t_sex=request.form(“sex“) t_minzu=request.form(“minzu“) t_phone=request.form(“phone“) t_jiguan=request.form(“jiguan“) 创建数据库的连接,Set conn = Server.CreateObject(“ADODB.Connection“) strProvider = “Provider=sqloledb;Data Source=zjf;Initial Catalog=txl;User ID=sa; Password=; “ conn.Open strProvider 添加时使用的字段 fields=array(“t_name“,“t_number“,“t_class“,“t_sex“,“t_mizu“,“t_phone“,“t_jiguan“) values=array(t_name,t_number,t_class,t_sex,t_minzu,t_phone,t_jiguan) sql = “INSERT INTO t_student(“ & Join(fields,“,“)&“) VALUES (“&_ Join(values,“,“)&“)“,添加数据 conn.Execute sql 判断执行是否成功 If conn.Errors.Count0 Then Response.Write “系统发生“&conn.errors.Count&“个错误!“ Else Response.Write “数据添加成功!“ End If Set conn=nothing %,数据录入正确和错误的显示,第3步:在添加数据时还可以利用RecordSet对象的AddNew方法增加数据记录。程序代码如下: % 取得用户输入的数据 t_name=request.form(“name“) t_number=request.form(“number“) t_class=request.form(“class“) t_sex=request.form(“sex“) t_minzu=request.form(“minzu“) t_phone=request.form(“phone“) t_jiguan=request.form(“jiguan“) 创建数据库的连接,Set conn = Server.CreateObject(“ADODB.Connection“) strProvider = “Provider=sqloledb;Data Source=zjf;Initial Catalog=txl;User ID=sa; Password=; “ conn.Open strProvider 建立RecordSet对象 Set rs=Server.createObject(“ADODB.RecordSet“) 启动指定的数据表,注意要AdLockOptimistic方式打开 rs.Open “t_student“,strProvider,adOpenkeySet,adlockOptimistic 添加一条数据记录 rs.AddNew rs(“t_number“).value=t_number rs(“t_name“).value=t_name rs(“t_sex“).value=t_sex,rs(“t_class“).value=t_class rs(“t_mizu“).value=t_minzu rs(“t_phone“).value=t_phone rs(“t_jiguan“).value=t_jiguan 将数据记录回存到表中 rs.Update Set rs=nothing Set conn=nothing % 注意:不能以只读方式打开表。,4.3 数据的删除,例4: 第1步:建立删除页面,在该页面中可以选择删除的记录。其显示结果如下图所示。,第2步:建立数据删除程序,可以利用SQL的Delete命令删除数据记录。程序代码如下: ,第3步:在删除记录时,还可以利用RecordSet对象的Delete方法来删除表中的数据记录,如果要删除的记录可能不止一个,应该采用UpdateBatch方法。程序代码如下: %取得被删除记录的标识 t_number=Trim(Request(“delid“) 创建数据库的连接 Set conn = Server.CreateObject(“ADODB.Connection“) strProvider = “Provider=sqloledb;Data Source=zjf;Initial Catalog=txl;User ID=sa; Password=; “ conn.Open strProvider 建立RecordSet对象 Set rs=Server.CreateObject(“ADODB.RecordSet“) 启动指定的数据表,注意要AdLockOptimistic方式打开 rs.Open “t_student“,Conn,adOpenkeySet,adlockOptimistic,利用循环检查记录,找到符合条件的记录,删除 While NOT rs.EOF If trim(rs(“t_number“).value)= t_number Then rs.Delete End If rs.MoveNext Wend 将数据回存到数据库中 rs.UpdateBatch rs.Close Set conn=nothing Set rs=nothing%,4.4 数据的修改,例5: 第1步:建立数据修改页面。在修改数据时,应该向用户显示当前所选择记录的内容,便于修改。因此,在程序的代码中除了能够获得被操作的记录外(如上节所示),还要回显记录内容。程序代码如下所示: %取得被编辑记录的标识 t_number=Request(“editid“) 创建数据库的连接,Set conn = Server.CreateObject(“ADODB.Connection“) strProvider = “Provider=sqloledb;Data Source=zjf;Initial Catalog=txl;User ID=sa; Password=; “ conn.Open strProvider 建立RecordSet对象 Set rs=Server.createObject(“ADODB.RecordSet“) 启动指定的数据表 rs.Open “select * from t_student where t_number =“ &_ t_number ,conn,adOpenkeySet,adlockOptimistic 获得记录值 t_name=rs(“t_name“) t_number=rs(“t_number“) t_class=rs(“t_class“) t_sex=rs(“t_sex“) t_minzu=rs(“t_mizu“) t_phone=rs(“t_phone“) t_jiguan=rs(“t_jiguan“),% 学 生 基 本 数 据 录 入 姓名: “ 学号: “ 班级: “ , 性别: “ 男 女 民族: “ 籍贯: “ ,联系电话: “ 在上例中,显示每个字段的同时显示了其对应的取值,在上图的页面中选择“修改”后,屏幕显示如图所示。,修改页面显示,第2步:建立数据修改程序。可以利用SQL语句中的Update命令修改表中的记录,程序代码如下: % 取得用户输入的数据 t_name=Trim(request.form(“name“) t_number=Trim(request.form(“number“) t_class=Trim(request.form(“class“) t_sex=Trim(request.form(“sex“) t_minzu=Trim(request.form(“minzu“) t_phone=Trim(request.form(“phone“) t_jiguan=Trim(request.form(“jiguan“),创建数据库的连接 Set conn = Server.CreateObject(“ADODB.Connection“) strProvider = “Provider=sqloledb;Data Source=zjf;Initial Catalog=txl;User ID=sa; Password=; “ conn.Open strProvider 设置修改时的SQL语句 field=array(“t_name“,“t_number“,“t_class“,“t_sex“,“t_mizu“,“t_phone“,“t_jiguan“) value=array(t_name,t_number,t_class,t_sex,t_minzu,t_phone,t_jiguan) sql=“UPDATE t_student SET “ For i=0 To ubound(field) sql = sql & field(i) & “=“ & value(i) & “ If i ubound(field) Then sql=sql & “,“ Else,sql=sql & “ where t_number=“ & t_number End If Next 执行修改操作 conn.Execute sql If conn.Errors.Count0 Then Response.Write “系统发生“&conn.errors.Count&“个错误!“ Else Response.Write “你的信息已成功修改!“ End If

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论