登陆界面的简单问题
我想问问看在登陆界面中验证用户名和密码之后,怎么通过提交按钮转到下一个网页。目前我是用CompareValidator控件来验证用户名和密码,但这个的弊端是只能是事先设定的一个用户名和密码,若要是通过数据库来存储用户名和密码来比对,应该怎么做啊? 问题点数:20、回复次数:21Top
1 楼sunchaohuang(流星飞狐(oO!))回复于 2006-05-04 20:36:49 得分 1
??????????????????????
就直接和数据库对比啊 验证控件是用来验证用户是否输入非法字符的Top
2 楼boy_north(北方的豹子)回复于 2006-05-04 20:40:48 得分 1
最简单的办法就是,把你输入的用户名和密码放在SQL中的SELECT语句当中,看看有结果没有
如果有,就说明登录成功,否则登录失败
登录成功后
你用this.RegisterStatupScript("Onlick","<script>window.open('xxx.aspx');</script>");
这样就可以跳转到另外一个页面啦Top
3 楼talent_Rake(仔仔)回复于 2006-05-04 20:51:40 得分 0
不好意思,能不能说的再详细点啊。怎么用SELECT语句?
另外this.RegisterStatupScript("Onlick","<script>window.open('xxx.aspx');</script>");这个是C#的语句吗?Top
4 楼xiaomi7732(小米)回复于 2006-05-04 20:55:53 得分 5
在On_Click事件中建立一个SqlCommand,添加下述SQL语句,
Select count(*) from 表名 where username=@username and password=password
然后添加两个参数的值分别是用户名和密码。
int n=(int)cmd.ExecuteScalar()
判断N,如果N!=1则用户名或密码错,否则,设Cookies并且跳转Top
5 楼wht6411(weblover|要毕业啦!HUST)回复于 2006-05-04 20:57:21 得分 0
不会这么菜吧!
Top
6 楼boci()回复于 2006-05-04 21:01:39 得分 1
你对SQL语言熟悉多少?
这里最简单的最是
SELECT COUNT(*)FORM TABLE WHERE ID=id and PWD=pwd
如果返回0就不等录,如果等于1就登陆。
<script>window.open('xxx.aspx');</script>");是javascriptTop
7 楼talent_Rake(仔仔)回复于 2006-05-04 21:02:15 得分 0
不好意思,确实比较菜。跳转应该用什么语句呢,请告诉我C#的好吗?Top
8 楼boci()回复于 2006-05-04 21:18:54 得分 1
Response.Redirect("jjj.htm");Top
9 楼ZHHE0800()回复于 2006-05-04 21:19:58 得分 1
Response.Redirect("url");
我们要帮助那些初学者,我们每个人都有需要学习的地方.Top
10 楼boci()回复于 2006-05-04 21:22:06 得分 1
是啊。我来这里就是因为这里气氛好。
大家互相帮助啊。Top
11 楼jaliwey()回复于 2006-05-04 21:28:49 得分 0
upTop
12 楼jhtyt(肥兔)回复于 2006-05-04 21:33:20 得分 4
说明一点:CompareValidator验证控件是用来验证输入的正确性的。
双击你的登陆按钮
在登陆按钮的click事件中写入:
//连接数据库语句
sqlcommand yz = new sqlcommand("select 用户名,密码 from 用户表",数据库连接);
SqldataReader ds = yz.ExecuteReader();
if(!ds.read())
{
//无此用户的信息输出
}
else
{
//有用户,核对密码
if(ds["密码"].tostring()!=TextBox2.Text)
{
//密码错误的输出信息
}
else
{
//验证成功,进入跳转的页面
Response.Redirect("跳转的页面");
}
}Top
13 楼talent_Rake(仔仔)回复于 2006-05-04 21:37:30 得分 0
谢谢大家那么热心:-)
麻烦大家了
我现在跳转页面的时候,它说ExecuteReader 需要打开的并且可用的连接。该连接的当前状态是 Closed。这是为什么呢?是网页的什么属性没设置好吗?Top
14 楼talent_Rake(仔仔)回复于 2006-05-04 21:40:49 得分 0
jhtyt(肥兔)兄的想法很好嘛,这样就能知道是用户名出错还是密码出错了,然后再弄2个label就能在一旁提示错误了Top
15 楼wht6411(weblover|要毕业啦!HUST)回复于 2006-05-04 21:44:50 得分 1
在要用它之前把连接关闭了。Top
16 楼talent_Rake(仔仔)回复于 2006-05-04 22:04:40 得分 0
这是我现在的代码,connection是在设计界面直接通过服务器资源管理器拖的。
private void Button1_Click(object sender, System.EventArgs e)
{
string id=TextBox1.Text;
string pwd=TextBox2.Text;
string mySel="Select count(*) from login where id=@username and pwd=@password";
sqlConnection1.Open();
SqlCommand myComm=new SqlCommand(mySel,sqlConnection1);
int n=(int)myComm.ExecuteScalar();
if (n==1)
{
Response.Redirect("WebForm2.aspx");
}
else
{
lblInfo.Text="用户名或密码出错";
}
sqlConnection1.Close();
}
为什么运行后会说必须声明变量 '@username'?这是为什么呢Top
17 楼jiajiaxiaxia(轻烟)回复于 2006-05-04 22:33:11 得分 0
晕。。。。长见识了Top
18 楼johnny1983()回复于 2006-05-04 22:44:31 得分 4
你两个参数没有传,要传一下
myComm.Parameters.Add(new System.Data.SqlClient.SqlParameter("@username",SqlDbType.这里写这个参数的数据库里的类型,这个参数数据库里的长度)).Value=id;
myComm.Parameters.Add(new System.Data.SqlClient.SqlParameter("@password",SqlDbType.这里写这个参数的数据库里的类型,这个参数数据库里的长度)).Value=pwd;
注意,你前面的
string id=TextBox1.Text;
string pwd=TextBox2.Text;
最好后面加个.ToString()Top
19 楼shamao(稳重,踏实,责任)回复于 2006-05-04 23:11:37 得分 0
呵呵,建议楼主找本ASP.NET 入门书研究研究哦。Top
20 楼talent_Rake(仔仔)回复于 2006-05-04 23:20:25 得分 0
基本搞懂了,谢谢大家!Top
21 楼Romakeloli(从开发到维护……)回复于 2006-05-05 12:49:26 得分 0
好好学,你还有好多东西要学,Top




