我创建了这段代码,但没有按照应有的方式运行。
当查询在数据库中返回匹配值时,应该发生什么,它应该重定向页面。但无论我做什么,它总是将值返回为false,并且永远不会重定向。
至少我认为正在发生的事情,任何帮助都会很棒......
我已经为此工作了3天,我很想忘记。如果有更好的方法,我会全力以赴。
var SuserId = User.Identity.GetUserId();
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
conn.Open();
cmd.CommandText = "select Count(ID) from AspNetStripeUsers where ID=@ID";
cmd.Parameters.AddWithValue("@ID", SuserId);
int result = (int)cmd.ExecuteScalar();
string wewe = result.ToString();
if (wewe == SuserId)
{
Response.Redirect("~/Services/MS/OT/igive");
}
答案 0 :(得分:0)
首先,您要比较UserId和可能产生问题的UserId计数。
int result = (int)cmd.ExecuteScalar();
if (result>0)
{
Response.Redirect("~/Services/MS/OT/igive");
}
else
{
//User not registered.
}
答案 1 :(得分:0)
这int result = (int)cmd.ExecuteScalar();
将始终返回一个与userID不相似的int值,因为它将从Database中检索第一个值,因此只需检查它是否具有任何值,这意味着您的条件为真
所以Nayan给出的上述代码是真的。
if (result>0)
{
Response.Redirect("~/Services/MS/OT/igive");
}
else
{
Console.Writeline("The user id is not valid";
}
答案 2 :(得分:0)
int result = (int)cmd.ExecuteScalar();
if (result>0)
{
Response.Redirect("");
}