1 / 27

ASP

ASP. Asp 存取数据库. 例如:开发一个在线的通讯录程序. 准备数据库. 建立一个数据库 address.mdb ,表为 tbAddress 为该数据库建立数据源 address. 设置数据库文件的权限,步骤如下: 对于 Windows XP 系统,如果安装时采用了 NTFS 文件系统,还要设置“ Internet 来宾帐户”可以完全控制该数据库文件。步骤如下:

Download Presentation

ASP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ASP Asp存取数据库

  2. 例如:开发一个在线的通讯录程序

  3. 准备数据库 • 建立一个数据库address.mdb ,表为tbAddress • 为该数据库建立数据源address

  4. 设置数据库文件的权限,步骤如下: 对于Windows XP系统,如果安装时采用了NTFS文件系统,还要设置“Internet来宾帐户”可以完全控制该数据库文件。步骤如下: 数据库文件单击右键/在快捷菜单/【属性】命令/“属性”对话框/【安全】标签/【组或用户名称】中选中“Internet来宾帐户”/“完全控制”等权限/【确定】按钮/。

  5. 连接数据库 • 用Connection对象连接数据库。具体连接方式有三种。 • 基于ODBC数据源的连接方式 <% Dim conn Set conn=Server.CreateObject("ADODB.Connection") conn.Open "address" %>

  6. 不用数据源的连接方式(连接字符串) : <% Dim conn Set conn=Server.CreateObject("ADODB.Connection") conn.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.MapPath("address.mdb")

  7. 基于OLE DB的连接方式 <% Dim conn Set conn=Server.CreateObject("ADODB.Connection") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("address.mdb")

  8. 想想?虚机空间和自主架设服务器二种情况,什么情况下用数据源方式,什么情况下用非数据源方式。想想?虚机空间和自主架设服务器二种情况,什么情况下用数据源方式,什么情况下用非数据源方式。

  9. 利用Select语句查询记录 • 利用Select语句查询记录。具体过程如下: • 利用Connection对象连接数据库。 • 利用Connection对象的Execute方法执行一条Select语句,该方法就会返回一个记录集对象(Recordset)。 • 所谓记录集,类似于一个数据库中的表,由若干列和若干行组成,可以看做一个虚拟的表。 • 在记录集中利用循环移动指针就可以依次读取所有的记录。

  10. <html><body> <% Dim conn Set conn=Server.CreateObject("ADODB.Connection") conn.Open "address" '以下建立记录集,建立一个Recordset对象实例rs Dim rs Set rs=conn.Execute("Select * From tbAddress") '返回整个数据表 '以下利用表格显示记录集中的记录 %>

  11. <table > <% Do While Not rs.Eof %> <tr> <td><%=rs("strName")%></td> <td><%=rs("strSex")%></td> <td><%=rs("intAge")%></td> <td><%=rs("strTel")%></td> <td><a href="mailto:<%=rs("strEmail")%>"><%=rs("strEmail")%></a> </td> <td><%=rs("strIntro")%></td> <td><%=rs("dtmSubmit")%></td> </tr> <% rs.MoveNext '将记录指针移动到下一条记录 Loop %> </table>

  12. 利用Insert语句添加记录 • 当希望增加一个新联系人时,就需要在数据库中添加一条记录,此时就需要用到SQL语言的Insert语句。 具体过程如下: • 利用Connection对象连接数据库。 • 利用Connection对象的Execute方法执行一条Insert语句,就可以在数据表中添加一条记录。

  13. <% Dim conn Set conn=Server.CreateObject("ADODB.Connection") conn.Open "address" '以下利用Connection对象的Execute方法添加新记录 conn.Execute(“Insert Into tbAddress(strName,strSex,intAge,strTel,strEmail,strIntro,dtmSubmit) Values(‘黎世兵’,‘男’,21,‘6112211’,‘mm@372.net’,‘地理',#2008-8-8#)") Response.Write "已经成功添加" %>

  14. 利用Delete语句删除记录 • 当希望删除联系人时,就需要在数据库中删除记录,这就要用到SQL语言的Delete语句。 • 删除记录也是利用Connection对象的Execute方法,不过也不需要返回记录集对象,具体过程和添加记录非常相似。

  15. <% Dim conn Set conn=Server.CreateObject("ADODB.Connection") conn.Open "address" '以下利用Connection对象的Execute方法删除记录 conn.Execute("Delete From tbAddress Where ID=1") Response.Write "已经成功删除" %>

  16. 利用Update语句更新记录 • 当需要更新某人的联系方式时,就需要用到SQL语言的Update语句。 • 更新记录也是利用Connection对象的Execute方法,不过也不需要返回记录集对象,具体过程和添加记录、删除记录都非常相似 。

  17. <% Dim conn Set conn=Server.CreateObject("ADODB.Connection") conn.Open "address" '以下利用Connection对象的Execute方法更新记录 conn.Execute("Update tbAddress Set intAge=22,strTel='61223211' Where ID=2") Response.Write "已经成功更新" %>

  18. 深入学习 • 前面例子各自独立,没有构成网站整体, 例如删除记录ID号是动态的,再例如更新记录,是用户通过更新表单输入或选择更新信息,再传递给更新程序。

  19. <td><a href="delete.asp?ID=<%=rs("ID")%>">删除</a></td> • <td><a href="update_form.asp?ID=<%=rs("ID")%>">更新</a></td>

  20. 利用Insert语句添加记录

  21. 利用Delete语句删除记录 • 在首页中单击【删除记录】超链接,就会执行该程序,执行完毕后立即再重定向首页。程序运行结果图略。

  22. 利用Update语句更新记录 • 更新记录包括两个文件:一个是表单文件update_form.asp,一个是更新执行程序update.asp。

  23. <% Dim conn,strConn Set conn=Server.CreateObject("ADODB.Connection") strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("address.mdb") conn.Open strConn '以下建立一个记录集对象实例rs,注意会用到传过来的ID Dim strSql,rs strSql="Select * From tbAddress Where ID=" & Request.QueryString("ID") Set rs=conn.Execute(strSql) %>

  24. <form method="POST" action="update.asp" ><table border="1" width="80%" align="center"><tr> <td>姓名</td> <td><input type="text" name="txtName" size="20" value="<%=rs("strName")%>">*</td></tr><tr> <td>性别</td><td><input type="radio" name="rdoSex" value="男" <%If rs("strSex")="男" Then Response.Write "checked"%>>男<input type="radio" name="rdoSex" value="女" <%If rs("strSex")="女" Then Response.Write "checked"%>>女</td></tr><tr> <td>年龄</td><td><input type="text" name="txtAge" size="4" value="<%=rs("intAge")%>"></td></tr><tr> <td>电话</td> <td><input type="text" name="txtTel" size="20" value="<%=rs("strTel")%>">*</td> </tr><tr> <td>E-mail</td><td><input type="text" name="txtEmail" size="50" value="<%=rs("strEmail")%>"></td> </tr><tr><td>个人简介</td> <td><textarea name="txtIntro" rows="4" cols="50"><%=rs("strIntro")%></textarea></td></tr><tr> <td><input type="hidden" name="txtID" value="<%=rs("ID")%>"></td> <td><input type="submit" name="btnSubmit" value=" 确 定 "></td> </tr></table></form>

  25. <% '只要有姓名和电话,就更新记录,否则给出错误信息 If Request.Form("txtName")<>"" And Request.Form("txtTel")<>"" Then '以下获取提交的表单数据 Dim ID,strName,strSex,intAge,strTel,strEmail,strIntro '声明几个变量 ID=Request.Form("txtID") '获取隐藏文本框传递过来的ID值 strName=Request.Form("txtName") '获取姓名 strSex=Request.Form("rdoSex") '获取性别 If Request.Form("txtAge")<>"" Then '获取年龄 intAge=Request.Form("txtAge") Else intAge=0 End If strTel=Request.Form("txtTel") '获取电话 strEmail=Request.Form("txtEmail") '获取E-mail strIntro=Request.Form("txtIntro") '获取个人简介 Dim conn,strConn Set conn=Server.CreateObject("ADODB.Connection") strConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("address.mdb") conn.Open strConn

  26. '下面利用Execute方法更新记录,注意更新条件为隐藏文本框传过来的ID值'下面利用Execute方法更新记录,注意更新条件为隐藏文本框传过来的ID值 Dim strSql strSql="Update tbAddress Set strName='" & strName & "',strSex='" & strSex & "',intAge=" & intAge & ",strTel='" & strTel & "',strEmail='" & strEmail & "',strIntro='" & strIntro & "' Where ID=" & ID conn.Execute(strSql) Response.Redirect "index.asp" Else Response.Write "姓名和电话必须填写" Response.Write "<a href='index.asp'>重新填写</a>" End If %>

More Related