asp.net(vs2005)c#登陆时与access数据库验证密码,只要简单实现

2025-01-31 01:32:18
推荐回答(3个)
回答1:

正好项目中作到了,比较简单,就是用户登入,带验证码。
前台代码就不贴了。需要一个名为name,pwd,yanzhen(验证码)的文本框,一个登入按钮
2个label1(需要输入的验证码) label2(返回登入信息)

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;
using System.Data.OleDb;
public partial class login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//以下产生随机的验证码,并在label1显示
Random ro = new Random();
if (!IsPostBack)
{
this.Label1.Text = ro.Next(1000, 9999).ToString();
}
}
protected void Button1_Click(object sender, EventArgs e)
{

if (this.name.Text != "")//判断用户名是否未空
{
if (this.pwd.Text != "")//判断密码是否未空
{
if (this.yanzhen1.Text != "")//判断验证码是否未空
{
if (this.yanzhen1.Text == this.Label1.Text)//判断验证码是否相等
{
string sql;
sql = "select count(*) from userinfo where username='" + this.name.Text + "' and pwd='" + this.pwd.Text + "'";//建立sql查询语句
try
{
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("./app_data/db.mdb"));//建立数据库连接
conn.Open();
OleDbCommand cmd = new OleDbCommand(sql, conn);
int state =Convert.ToInt32( cmd.ExecuteScalar());//执行sql语句,并返回获得值
if (state == 0 || state > 1)//如果数据中没有记录或有多条记录则抱错
{
this.Label2.Text = "用户不存在,请检测用户名和密码是否正确!";
}
else
{
this.Label2.Text = "登入成功!" ;

}
conn.Close();

}
catch (Exception a)
{
Response.Writea.Message);
}
}
else
{
this.Label2.Text = "验证码不正确,请重新输入!";
}
}
else
{
this.Label2.Text = "验证码没有填写!";

}
}
else
{
this.Label2.Text = "密码没有填写!";

}
}
else
{
this.Label2.Text = "用户名没有填写!";
}
}
}
有问题再联系我

回答2:

其实你就是验证用户名密码 ,用这个方法验证的时候快,但内存消耗挺大的,如果用户数量很多的话,就不可想象了。给你个例子:
Dim strConn
Private Sub Form_Load()
strConn="provider=microsoft.jet.oledb.4.0;data source=d:\vbwork\access.mdb"
End Sub
Private Sub Command1_Click()
sN=text1.text:sp=text2.text
if (sn="") or (sp="") then exit sub
sql="select * from access where username='" &sn &"' and password='" &sp &"'"
dim conn as new ado.connection
conn.ConnectionString=strConn
set rs=conn.open(sql)
if rs.eof then
msgbox "用户名或密码错误"
else
if not rs("password")=sp then
msgbox "用户名或密码错误"
else
'密码正确的代码
end if
end if
End Sub

回答3:

上面的代码不是c#的吧!

-----------------------------看看我的兄弟--------------
login.aspx页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="login" %>





无标题页


















----------------
其后台文件为(login.aspx.cs):

protected void Button1_Click(object sender, EventArgs e)
{
//定义连接字符串
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;DataSource=你的数据库链接地址";
//得到SqlConnection对象
SqlConnection myConnection = new SqlConnection(strConnection);
myConnection.Open();
定义查询sql,查看数据库中是否有用户输入的信息,有就可以登陆,即返回的值为大于0的
string sql = "select count(*) from user where neme=" + TextBox1.Text + "and pwssword=" + TextBox2.Text;

//执行sql
SqlCommand myConmmand = new SqlCommand(sql, myConnection);
//得到返回的是值
int flag = (int)myConmmand.ExecuteScalar();
关闭数据库连接,很重要哦
myConnection.Close();
//根据返回的值,判断是否登陆跳转
if (flag > 0)
{

Response.Redirect("wel.aspx");
}
else
{
Response.Write("登录失败");

}

}
你看看吧,是我刚做的一个小例子,数据连接没有提取出来哈,实际地开发都是要提取出来的哦!!