asp.net C# web代码

这是首页登录有一个下拉列表dropdownlist1两个文本框和一个按钮组成我想要实现的是在首页下拉列表中选择用户身份是管理员还是用户然后在textbox1输入姓名box... 这是首页登录 有一个下拉列表dropdownlist1 两个文本框 和一个按钮 组成
我想要实现的是 在首页下拉列表中选择用户身份是管理员还是用户 然后在textbox1输入姓名 box2中输入密码 点击按钮 进入第二个页面 选择管理员 验证正确就进入管理员界面 选择用户 验证正确 就进入用户页面 上面那段代码 我自己写的 总不对 请帮忙帮我指错 修改下 谢谢了
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
if (DropDownList1.SelectedValue = DropDownList1.ToString())

{ string constr = "Data Source=PC-200907252046;Initial Catalog=web;Integrated Security=True";
SqlConnection con = new SqlConnection(constr);
con.Open();
string username = TextBox1.Text;
string userpwd = TextBox2.Text;
string sqlcheckuser = "select * from A_username where username='" + username + "'and userpwd='" + userpwd + "'";
SqlCommand cmdcheckuser = new SqlCommand(sqlcheckuser, con);
SqlDataReader Dr;
Dr = cmdcheckuser.ExecuteReader();
if (Dr.Read())
{
if (Dr.GetValue(1).ToString() == username)
{
if (Dr.GetValue(2).ToString() == userpwd)
{
Session["IsloginOK"] = "Ok";
Session["username"] = username;

}
}
}
Response.Redirect("第二注册用户.aspx");
}

else if (DropDownList1.SelectedValue = DropDownList1.ToString())
{ string constr = "Data Source=PC-200907252046;Initial Catalog=web;Integrated Security=True";
SqlConnection con = new SqlConnection(constr);
con.Open();
string mname = TextBox1.Text;
string mpwd = TextBox2.Text;
string sqlcheckuser = "select * from A_manager where mname='" + mname + "'and mpwd='" + mpwd + "'";
SqlCommand cmdcheckuser = new SqlCommand(sqlcheckuser, con);
SqlDataReader Dr;
Dr = cmdcheckuser.ExecuteReader();
if (Dr.Read())
{
if (Dr.GetValue(1).ToString() == mname)
{
if (Dr.GetValue(2).ToString() == mpwd)
{
Session["IsloginOK"] = "Ok";
Session["mname"] = mname;

}
}
}
Response.Redirect("第三管理员区.aspx");
}
}
}
看图
展开
 我来答
江小右
2009-09-24 · TA获得超过6928个赞
知道小有建树答主
回答量:1195
采纳率:0%
帮助的人:829万
展开全部
把错误贴出来,这样我们好找原因。
看了楼主的代码我提两点建议
string username = TextBox1.Text; //改成string username = TextBox1.Text.Trim();这样能去除textbox结尾的空格,因为在最后出现用户输入很容易出问题的一关
string userpwd = TextBox2.Text;//同上

Dr = cmdcheckuser.ExecuteReader();
if (Dr.Read())
{
if (Dr.GetValue(1).ToString() == mname)
{
if (Dr.GetValue(2).ToString() == mpwd)
{
Session["IsloginOK"] = "Ok";
Session["mname"] = mname;

}
}
}
Response.Redirect("第二注册用户.aspx");

//这段代码烦长又多余,而且现在肯定达不到楼主的要求,错误密码都能过关吧
我改了下
int i = Convert.ToInt32(cmd.ExecuteScalar());//这里如果查到有符合你写的SQL语句的记录的话,i>0,从你的语句可以看出如果你能查到如何SQL语句的话,密码和用户名就已经可以确定正确了,楼主后来写的判断是多此一举
if(i>0)
{
Session["IsloginOK"] = "Ok";
Session["mname"] = mname;
}
你用了这么多句结果还是错误的,我两句就搞定了
下面的一样改,我就不废话了
第二点意见:
管理员和注册用户存在两张表的做法我是不敢苟同,一般管理员和用户都放到一张表里,然后设置权限,根据权限判断是不是管理员,不过这可能有个人喜好有关,楼主这样做错误是没有的,是否合理我就不多说了
kid83
2009-09-24 · TA获得超过2081个赞
知道大有可为答主
回答量:1818
采纳率:0%
帮助的人:1994万
展开全部
1.if (DropDownList1.SelectedIndex == 0)
{
//Response.Redirect("第二注册用户.aspx");
}

2.
Session["IsloginOK"] = "Ok";
Session["username"] = username;

con.Close();
Dr.Close();

3.
string sqlcheckuser = "select * from A_username where username='" + username + "' and userpwd='" + userpwd + "'";
string sqlcheckuser = "select * from A_manager where mname='" + mname + "' and mpwd='" + mpwd + "'";

多一个空格
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
休平凡23
2009-09-24 · TA获得超过620个赞
知道小有建树答主
回答量:1102
采纳率:0%
帮助的人:604万
展开全部
根据你的代码 改的 好久没碰C#了 不知道对不对 不过大体上应该是这样的

protected void Button1_Click(object sender, EventArgs e)
{
if (DropDownList1.SelectedValue =="普通用户")
{
if(Checkdb("A_username ",textbox1.text,textbox2.text)==1)
{
Session["IsloginOK"] = "Ok";
Session["mname"] = b;
Response.Redirect("第二注册用户.aspx");
}
}
else
{
if(Checkdb("A_manager",textbox1.text,textbox2.text)==1)
{
Session["IsloginOK"] = "Ok";
Session["mname"] = b;
Response.Redirect("第三管理员区.aspx");
}
}
}

public int Checkdb(string a,string b,string c)// a表示 数据表,b表示User C表示pwd
{
int i;
string constr = "Data Source=PC-200907252046;Initial Catalog=web;Integrated Security=True";
SqlConnection con = new SqlConnection(constr);
con.Open();
string sqlcheckuser = "select * from "+a+"where mname='" + b+ "'and mpwd='" + c+ "'";
SqlCommand cmdcheckuser = new SqlCommand(sqlcheckuser, con);
SqlDataReader Dr;
Dr = cmdcheckuser.ExecuteReader();
if (Dr.Read())
{
if (Dr.GetValue(1).ToString() == b)
{
if (Dr.GetValue(2).ToString() == c)
{
i=1;
}
}
}
else
{
i=0;
}
return i;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a1bb88b
2009-10-10 · TA获得超过135个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:236万
展开全部
第一:
DropDownList1.SelectedValue = DropDownList1.ToString()
= 应该是==吧

DropDownList1.ToString()是DropDownList类型名即 System.Web.UI.WebControl.DropDownList 你不会这样写值吧
可能应该是

if(DropDownList1.SelectedValue=="用户")

else if(DropDownList1.SelectedValue=="管理员")

------------------------
第二
代码的确是多沉余了

-----------------------
第三

string sqlcheckuser = "select * from A_manager where mname='" + mname + "'and mpwd='" + mpwd + "'";
你通过这句查询,如果能返回

if (Dr.Read()) //这条如果通过 以下的判断就一定通过,除非你的字段不对应
{
if (Dr.GetValue(1).ToString() == mname)
{
if (Dr.GetValue(2).ToString() == mpwd)
{
Session["IsloginOK"] = "Ok";
Session["mname"] = mname;

}
}
}

-----
第四
你的Sql写法很危险,易于SQL注入
最好过虑一下,不要相信任何的外界录入数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孙中吕
2009-10-07 · 专注C/S架构开发框架技术研究
孙中吕
采纳数:435 获赞数:788

向TA提问 私信TA
展开全部
[原创]易学纨纨作品-C#.Net网上购物系统之网上书店(一) 程序介绍
http://hi.baidu.com/jonnysuen/blog/item/a4e19c4569021a88b2b7dc1a.html
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2cc3c16
2009-09-24 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:198
采纳率:0%
帮助的人:106万
展开全部
if (DropDownList1.SelectedValue = DropDownList1.ToString())
这句话有问题
if (DropDownList1.SelectedValue == "字符串")

不过你这段东西写的可以优化很多,好多都是重复的代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式