一个关于ASP。NET的简单问题

jacksboy 2004-05-06 09:19:41
题目是这样的:创建一个名为LOGIN的登陆程序,放三个LABEL和两个TEXTBOX,一个BUTTON,三个LABEL分别是题目,用户,密码。TEXTBOX则分别接受用户名和密码,要求使用REQUEST对象获取用户名和密码,验证用户输入的密码是否为“*****”,是的话则使用RESPONSE对象显示信息“用户名,你的登陆信息正确”,不是的话则显示“用户名,你的登陆信息不正确”。请问这是不是要写判断语句,为什么我象下面这样写,运行的时候会报错。正确的写法应该是怎么写?多谢多谢。


using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;

namespace WebApplication1
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.TextBox UserName;
protected System.Web.UI.WebControls.TextBox Password;
protected System.Web.UI.WebControls.Label Label3;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.UserName.TextChanged += new System.EventHandler(this.TextBox1_TextChanged);
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void TextBox1_TextChanged(object sender, System.EventArgs e)
{

}

private void Button1_Click(object sender, System.EventArgs e)
{
//定义两个变量,获取从文本框输入的字符
String s1,s2;
s1=(Request.Form.Get(UserName);
s2=Request.Form.Get(Password);
if(s2!="*****")
//如果我要获取从文本框中输入的字符,并复给一个变量应该怎么做,这样做不行,运行的时候报错

Response.Write("s1,+您的登陆信息不正确");
else

Response.Write("s1,+您的登陆信息正确");

}
}
}
...全文
15 13 点赞 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zyw2833 2004-05-06
用Request.Form,页面中的Form不要加Runat=server,button改成Submit
  • 打赏
  • 举报
回复
huangyungang 2004-05-06
我的程序是登陆界面三个LABEL,用户名和密码,另外一个用以显示提示信息,对应两个文本框。txtUsername,txtPassword,一个确定按钮cmdOk,具体代码如下,(已调试,完全通过)请楼主参阅。
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

using System.Data.SqlClient ;

namespace TFSS
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button cmdOk;
protected System.Web.UI.WebControls.Button cmdCancel;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.TextBox txtUsername;
protected System.Web.UI.WebControls.TextBox txtPassword;
protected System.Web.UI.WebControls.Label Label3;
protected System.Web.UI.WebControls.Label Label2;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.cmdOk.Click += new System.EventHandler(this.cmdOk_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void cmdOk_Click(object sender, System.EventArgs e)
{
string uid;
string pwd;
uid=txtUsername.Text ;
pwd=txtPassword.Text ;
SqlConnection conn=new SqlConnection ("server=localhost;uid=sa;pwd=;database=数据库");
conn.Open ();
SqlCommand cmd=new SqlCommand ("select *from userinfo where username='"+uid+"' and password='"+pwd+"'",conn);
//userinfo包含了用名信息。
SqlDataReader myReader;
cmd.CommandType=CommandType.Text ;
myReader=cmd.ExecuteReader() ;
if(myReader.Read())
{

//Response.Redirect ("import.htm");
Label3.Text="你的登陆信息正确";
}
else
{
Label3.Text ="你的登陆信息不正确
}



}
}
}
  • 打赏
  • 举报
回复
xicunfu 2004-05-06
你调试一下,看s2是多少
  • 打赏
  • 举报
回复
jacksboy 2004-05-06
这里的人怎么都不回答正题啊。。
我说了是题目这么要求的,
不要老是纠缠于该用REQUEST还是不用REQUEST好不好。
我现在最关键的问题是无法显示出想要的效果。
就这段,明明回复在上面,怎么都没人看的啊。


我把这里这样改下就没问题了,但是不管我在密码文本框里输入什么都是显示您的登陆信息不正确。这是怎么回事啊。
private void Button1_Click(object sender, System.EventArgs e)
{
String s1,s2;
s1=Request.Form.Get(UserName.Text);
s2=Request.Form.Get(Password.Text);
if (s2 =="*****")(是不是这里不对,应该怎么改)
Response.Write("您的登陆信息正确");
else
Response.Write("您的登陆信息不正确");


}
  • 打赏
  • 举报
回复
vzxq 2004-05-06
同意,小白兄说的。你直接赋值就行了。
  • 打赏
  • 举报
回复
jacksboy 2004-05-06
我把这里这样改下就没问题了,但是不管我在密码文本框里输入什么都是显示您的登陆信息不正确。这是怎么回事啊。
private void Button1_Click(object sender, System.EventArgs e)
{
String s1,s2;
s1=Request.Form.Get(UserName.Text);
s2=Request.Form.Get(Password.Text);
if (s2 =="*****")(是不是这里不对,应该怎么改)
Response.Write("您的登陆信息正确");
else
Response.Write("您的登陆信息不正确");


}
  • 打赏
  • 举报
回复
linfuguo 2004-05-06
把你的TextBox加上 runat=server,
直接用TextBox.Text
  • 打赏
  • 举报
回复
jacksboy 2004-05-06
但是题目要求用到REQUEST和RESPONSE两个对象啊,如果没用到,那是不是不符合题意呢。
  • 打赏
  • 举报
回复
ajie213 2004-05-06
我同意小白的看法,这样更直接啊!
  • 打赏
  • 举报
回复
DB牛牛 2004-05-06
我对C#不太懂,你测试以下Request.Form.Get() 得到的是字符串类型还是数组类型 ,然后在前面定义变量类型的时候,定义为相应的类型。
另外,你的Response.Write("s1,+您的登陆信息不正确"); 写的正确吗?
用VB应该是Response.Write(s1 & ",您的登陆信息不正确");
  • 打赏
  • 举报
回复
neowang 2004-05-06
楼主为什么非要使用Request和Response呢?
我认为直接将TextBox的Text属性直接赋值给s1和s2就可以了。
String s1=TextBox.Text;
String s2=TextBox.Text;


  • 打赏
  • 举报
回复
vinsoft 2004-05-06
如果添加双引号以后,就出现你要的效果了!
  • 打赏
  • 举报
回复
vinsoft 2004-05-06
private void Button1_Click(object sender, System.EventArgs e)
{
String s1,s2;
s1=Request.Form.Get("UserName");//UserName texbox ID
s2=Request.Form.Get("Password");//Password texbox ID
if (s2 =="*****")//是不是这里不对,应该怎么改)
{
Response.Write("您的登陆信息正确");
}
else
{
Response.Write("您的登陆信息不正确");
}


}
其实你基本写对了,只不过少写双引号!!
  • 打赏
  • 举报
回复
相关推荐
发帖
.NET社区
加入

5.9w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-05-06 09:19
社区公告
暂无公告