【ASP】连接Access数据库的登陆系统

一、基本目标

首先在Access数据库Database.mdb中存在着用户信息表test:


编写一个登陆系统,如果用户输入的用户名在表中没有,则提示“查无此人”,如果输入密码错误,则提示“密码错误”


如果用户输入的用户名与密码都正确,则跳转到登陆成功页


登陆成功页在普通情况下,不允许通过输入网址就能访问



二、基本思想

使用asp的session对象确保了用户名与密码的传递。

弹出部分使用了javascript的脚本语言

使用asp对用户信息表进行查询。

站点的基本结构如下:



三、制作过程

整个站点使用utf-8码保证不会乱码,所以每一页在页头必须有<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,如果使用DW的高版本则自动添加,低版本请把gb2312改成utf-8,记事本自便。

1、登陆页面login.html仅仅是一个表单的静态页面。关键是用post方法传递信息,Action是到login.asp

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>login</title>
</head>

<body>
<form method="post" action="login.asp"> 
username:<input type="text" name="username" />
password:<input type="password" name="password" />
<input type="submit" value="login" />
</form>
</body>
</html>

2、login.asp登陆验证页面是本系统最核心的页面

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>login</title>
</head>

<body>

<%
'向把login.html传过来的两个信息用变量保存起来
username=Request.Form("username")
password=Request.Form("password")
'数据库是上一级目录的Database.mdb
%>
<%
db="../Database.mdb"
'连接数据库指定动作,这段必须独立地占用一个<%%>否则在某些情况下IE8会出错
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};pwd=admin;dbq=" & Server.MapPath(db) 
%>
<%
Set rs = Server.CreateObject( "ADODB.Recordset" )
'看表中是否有此username
sql = "select * from test where username='"+username+"';"
rs.open sql,conn,1,3
'如果什么都查不到,弹窗,弹回login.html
if (rs.bof and rs.eof) then
%>
<script>
alert("查无此人");
window.location.href = "login.html";
</script>
<%
'否则拿查出来的密码,与用户输入的密码作对比,看是否一致
'查出来的密码必须先用一个变量接住,在ASP中不能直接比较
else
dbpwd=rs("password")
'如果不一致,则弹窗,ASP没有!=,表示不等于请用<>
if password<>dbpwd then
%>
<script>
alert("密码错误");
window.location.href = "login.html";
</script>
<%
else
'如果用户名密码都输入正确,则有此用户,timeout是为了防止用户非正常退出的,如果5分钟没有任何操作则判定其已经退出,ok是正常登陆的标志
Session.Timeout=5
Session("username")=username
Session("login")="ok"
%>
<script>
alert("登陆成功");
window.location.href = "success.asp";
</script>
<%
end if
end if
'用完数据库记得关
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
</body>
</html>



3、success.asp

没什么好说的,关键是看他是否有正常登陆标志,login的内容是否为ok,没有则将其弹出登陆页面

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>欢迎登陆</title>
</head>

<body>
<%
if Session.Contents("login")<>"ok" then 
%>
<script>
alert("请正常登陆!");
window.location.href = "login.html";
</script>
<%
else
Response.Write("欢迎登陆,"+Session.Contents("username"))
end if
%>
<a href="exit.asp">正常退出</a>
</body>
</html>


4、exit.asp退出处理页面

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>正在退出...</title>
</head>

<body>
<%
'所有session立即超时,并且移除所有session
Session.Abandon
Session.Contents.RemoveAll()
%>
<script>
window.location.href = "login.html";
</script>
</body>
</html>


  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ASP.NET连接Access数据库的步骤如下: 1. 在Visual Studio中创建一个ASP.NET网站项目。 2. 在项目中添加一个Access数据库文件(.mdb或.accdb格式)。 3. 在Web.config文件中添加连接字符串,指定Access数据库文件的路径和名称。 4. 在代码中使用ADO.NET对象(如OleDbConnection、OleDbCommand、OleDbDataReader等)连接Access数据库,并执行相应的操作(如查询、插入、更新、删除等)。 例如,以下是连接Access数据库并查询数据的示例代码: string connectionString = "Provider=Microsoft.ACE.OLEDB.12.;Data Source=|DataDirectory|\\myDatabase.accdb"; using (OleDbConnection connection = new OleDbConnection(connectionString)) { connection.Open(); string sql = "SELECT * FROM myTable"; using (OleDbCommand command = new OleDbCommand(sql, connection)) { using (OleDbDataReader reader = command.ExecuteReader()) { while (reader.Read()) { string name = reader.GetString(); int age = reader.GetInt32(1); Console.WriteLine("Name: {}, Age: {1}", name, age); } } } } 注意:在 ### 回答2: ASP.NET是一个基于Microsoft .NET平台开发的Web应用程序框架,可以轻松实现与后台数据库连接Access数据库是微软公司开发的一种关系型数据库,广泛应用于小型企业和个人应用中。ASP.NET连接Access数据库需要以下步骤: 1. 安装Access数据库驱动程序(如果尚未安装),下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=54920 2. 打开Visual Studio,创建一个ASP.NET Web应用程序项目。在“解决方案资源管理器”中,右键单击项目名称,选择“添加”->“新项”,然后选择数据源。 3. 在“数据源配置向导”中,选择“数据库”,然后选定Access数据库文件的路径。 4. 接下来就是设置连接字符串,可以在“高级选项”中配置连接属性,如“Provider”、“Data Source”、“User ID”、“Password”等。如果连接成功,可以预览和测试数据源。 5. 在代码中使用SqlConnection对象打开连接。示例代码如下: protected void Page_Load(object sender, EventArgs e) { string connString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; using (SqlConnection conn = new SqlConnection(connString)) { conn.Open(); // 执行SQL语句 // ... } } 需要注意的是,在使用Access数据库时,有些特殊的语法和数据类型需要进行适当转换。例如,Access中的布尔型数据使用“-1”表示True,使用“0”表示False;日期时间类型使用CDate()函数进行转换,等等。 综上所述,ASP.NET连接Access数据库需要依次进行:启用数据库驱动程序、添加数据源、配置连接字符串、打开连接,并在代码中使用SqlConnection对象。在实际开发中,还需考虑到安全性、性能优化等因素,选择合适的工具和技术进行开发。 ### 回答3: ASP.NET 是 Microsoft 公司推出的一款 WEB 应用程序开发框架,可以使用 C# 或者 VB.NET 来进行编程。而 Access 数据库是一种轻量级的数据库,它可以创建在本地计算机中的数据库文件,因此在某些情况下 Access 是一个很好的选择。 ASP.NET 可以通过使用 ADO.NET 来连接 Access 数据库。ADO.NET 包含了访问数据的一些类和对象,以及将数据从数据源检索到数据集中的一些工具。以下是连接 Access 数据库的步骤: 1. 第一步是在项目中添加命名空间。可以使用 System.Data.OleDb 命名空间来连接 Access 数据库。 2. 第二步是创建连接对象。使用 OleDbConnection 对象来实现连接。在创建 OleDbConnection 对象时,首先需要指定 Access 数据库文件的路径。 3. 第三步是打开数据库连接。使用 Open 方法来打开数据库连接。 4. 第四步是执行 SQL 查询。可以使用 OleDbCommand 对象执行 SQL 查询。在执行查询时,需要指定查询语句和连接对象。 5. 第五步是关闭连接。在完成数据查询后,一定要关闭连接。可以使用 Close 方法来关闭连接。 下面是一个 ASP.NET 访问 Access 数据库的示例: ```C# using System.Data.OleDb; protected void Page_Load(object sender, EventArgs e) { string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\mydatabase.accdb;Persist Security Info=False;"; OleDbConnection connection = new OleDbConnection(connectionString); try { connection.Open(); string query = "SELECT * FROM MyTable"; OleDbCommand command = new OleDbCommand(query, connection); OleDbDataReader reader = command.ExecuteReader(); while (reader.Read()) { // 处理查询结果 } reader.Close(); } catch(Exception ex) { // 处理异常 } finally { connection.Close(); } } ``` 这份代码使用了 OleDbConnection 和 OleDbCommand 来连接数据库。它首先创建了一个连接对象,然后打开了连接,执行了指定的 SQL 查询,并将查询结果读取到 OleDbDataReader 对象中。最后在 finally 块中关闭了数据库连接

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值