| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 948 人关注过本帖
标题:为什么我的用户登陆的代码有错?-->阳光白雪转移
只看楼主 加入收藏
水晶之恋
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-4-23
收藏
 问题点数:0 回复次数:10 
为什么我的用户登陆的代码有错?-->阳光白雪转移

请问:我这段用户登陆的代码有错吗?我数据库中数据如下:
username Login_ID password Login_level
李霞 administrator 123 0
张洋 aa aa 1

当我输入login_ID:administrator,password:123时,我想让他跳转的是index.aspx,结果怎么跳转到scan.aspx页面呢?不明白!

public void DBOpen()
{
strConnectionString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
conn = new SqlConnection(strConnectionString);
conn.Open();
}

//检测用户输入的用户名和密码的正确性
private void submit_Click(object sender, System.EventArgs e)
{
string str;
if(txtlogname.Text==""||txtlogpwd.Text=="")
{
Response.Write("<script>javascript:alert('您输入的用户名或密码有一项为空,为了安全起见,请每项都输入!');</script>");
Response.Write("javascript:window.location='Login.aspx'");
}
else
{
str="select username from login where login_ID='" + txtlogname.Text + "' and password='" + txtlogpwd.Text + "'";
DBOpen();
com=new SqlCommand(str,conn);

string user_name=Convert.ToString(com.ExecuteNonQuery());

if(user_name!=null)
{
Input(user_name);
}
else
{
message.Visible=true;
message.Text="您不是公司的员工,无权访问!";
}
conn.Close();
}
}

private void Input(string name)
{
Session["UserID"]=txtlogname.Text;
Session["username"]=name;
string level="select login_level from login where login_ID='" + txtlogname.Text + "'";
DBOpen();
com=new SqlCommand(level,conn);
string lev=Convert.ToString(com.ExecuteNonQuery());
Session["login_level"]=Convert.ToInt32(lev);
if(Convert.ToInt32(lev)==0)
{
Response.Write("<script>javascript:alert('您是超级用户,具有管理员工信息的权限!');</script>");
Response.Redirect("index.aspx");
}
else
{
Response.Write("<script>javascript:alert('您是普通用户,只具有一般的浏览和查询的权限!');</script>");
Response.Redirect("scan.aspx");
}
}

搜索更多相关主题的帖子: 白雪 登陆 用户 代码 阳光 
2007-04-27 14:15
djx520
Rank: 1
等 级:新手上路
威 望:1
帖 子:38
专家分:0
注 册:2007-4-2
收藏
得分:0 

string user_name=Convert.ToString(com.ExecuteNonQuery());这句错了
应该是
SqlDataReader dr=cmd.ExecuteReader()
if(dr.next())
{
//后面函数的参数也不要
Input();

}


后面函数的string lev=Convert.ToString(com.ExecuteNonQuery());
这里也想前面一样改SqlDataReader dr=cmd.ExecuteReader()
if(dr.next())
{

Response.Write("<script>javascript:alert('您是超级用户,具有管理员工信息的权限!');</script>");
Response.Redirect("index.aspx");

}

2007-04-27 15:38
卡洛
Rank: 2
等 级:论坛游民
威 望:2
帖 子:185
专家分:40
注 册:2007-3-23
收藏
得分:0 
她那句是要把读出来数据传到变量里。如果按照2楼你这样的方法,她里面改变的就多了。

2007-04-27 16:41
卡洛
Rank: 2
等 级:论坛游民
威 望:2
帖 子:185
专家分:40
注 册:2007-3-23
收藏
得分:0 
我现在设计到有数据传送的东西都用SqlDataAdapter来实现。用SqlCommand做数据库里执行判断还好点。做数据传输好象就比较麻烦了吧`

2007-04-27 16:45
djx520
Rank: 1
等 级:新手上路
威 望:1
帖 子:38
专家分:0
注 册:2007-4-2
收藏
得分:0 
回复:(djx520)string user_name=Convert.ToString(...

但是她那样做登陆是错的,是的不出结果的

2007-04-27 16:52
水晶之恋
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-4-23
收藏
得分:0 

那我应该怎么做呢?
请高手指教!!

2007-04-27 17:08
卡洛
Rank: 2
等 级:论坛游民
威 望:2
帖 子:185
专家分:40
注 册:2007-3-23
收藏
得分:0 
恩,刚看了一下。
ExecuteNonQuery()这个方法是反应影响的行数。就算有数据,类型转换成string以后只是显示些数字
并不能得到你需要的username。
你可以用ExecuteScalar()试一下。

2007-04-27 17:16
rstp
Rank: 1
等 级:新手上路
威 望:1
帖 子:50
专家分:0
注 册:2006-10-13
收藏
得分:0 
ExecuteNonQuery() 函数返回值是受影响的行数,也就是说,在你的选择权限的时候返回值是1 不是0 ,因为有administrator这个用户,这样必然跳转到sacn那个页面了。。。
2007-04-27 17:16
卡洛
Rank: 2
等 级:论坛游民
威 望:2
帖 子:185
专家分:40
注 册:2007-3-23
收藏
得分:0 
用SqlDataAdapter的Fill填充个DataSet什么的。这样好做点。可以控制DS的DataTable来传输数据库里的数据

2007-04-27 17:24
水晶之恋
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-4-23
收藏
得分:0 

真复杂啊
有没有什么更好的编码能够实现这一功能呢?
难道只能这样吗?

2007-04-27 17:40
快速回复:为什么我的用户登陆的代码有错?-->阳光白雪转移
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012161 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved