C#程序逻辑,很乱

来源:百度知道 编辑:UC知道 时间:2024/07/02 18:14:38
CLASS1:
public int MyUser(string user)
{
int a = -1;
SqlCommand cmd = new SqlCommand("HasUser", conn);//储存过程名
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@user", SqlDbType.NVarChar).Value=user; //参数
if (cmd.ExecuteScalar() != null)
{
a = int.Parse(cmd.ExecuteScalar().ToString());
}
closeConn();
return a;
}
CLASS2:
public bool HasUsers(string user)
{
dal db = new dal();
if (db.HasUser(user) == -1)
{
return false;
}
else
{
return true;
}
}
页面:
protected void Page_Load(object sender, EventArgs e)
{
string username = Server.UrlDecode(Request.QueryString["UserName"].ToString());

你可以从PageLoad的第一句开始设断点,然后按F11一句一句执行
看看每一句执行后,变量的变化,看是哪里的问题

public int MyUser(string user)
if (db.HasUser(user) == -1)
你声明的函数跟你调用的不是同一个,你发现了没有?

你的存储过程用的是count()的查询吗?如果是的话,没有该用户会返回0,这样就不是-1,所以永远输出1。如果不是这样,请列出存储过程

反推过去就是a一直为false
在反推是db.HasUser(user) == -1一直成立
继续反推,我发现你没给我这个HasUser(user)的实现???