2016-11-02 2 views
0

Я создал этот фрагмент кода, но не так, как должен.SQL-команда не перенаправляет

Что произойдет, когда запрос возвращает соответствующее значение в базе данных, он должен перенаправить страницу. Но независимо от того, что я делаю, он всегда возвращает значение как ложное и никогда не перенаправляет правильно.

По крайней мере то, что я думаю, что это происходит, любая помощь будет большой ..

Я работал над этим в течение 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 [email protected]"; 
cmd.Parameters.AddWithValue("@ID", SuserId); 

int result = (int)cmd.ExecuteScalar(); 

string wewe = result.ToString(); 

if (wewe == SuserId) 
{ 
    Response.Redirect("~/Services/MS/OT/igive"); 
} 
+0

Я не могу получить то, что вы пытаетесь сделать, вы сравниваете 'не из records' в' SuserId'? Если вы просто проверите «результат» больше 0? – Prisoner

+0

result.ToString() - количество записей, и вы пытаетесь сравнить его с фактической идентификацией пользователя. – Hakunamatata

+0

Кажется, что вы должны изменить свой SQL-запрос, чтобы вернуть идентификатор пользователя или другое значение для БД, если оно есть, и сравнить это значение с идентификатором пользователя в коде. Прямо сейчас, вы просто возвращаете количество записей, которые кажутся неправильными ..! –

ответ

0

Это int result = (int)cmd.ExecuteScalar(); будет всегда возвращает INT значение, которое не может быть похоже на идент, потому что он будет получать первое значение из базы данных так просто проверить, имеет ли это какое-либо значение, которое означает, что ваше условие истинно

, поэтому приведенный выше код, который дается Nayan, верен.

if (result>0) 
{ 
    Response.Redirect("~/Services/MS/OT/igive"); 
} 
else 
{ 
Console.Writeline("The user id is not valid"; 

} 
+0

Я вижу, что я делаю неправильно. Я использовал оператора совершенно неправильно, потому что я уже думал о его функции. Были записи, но я думал о том, чтобы найти похожие, и подсчитывать все те, которые были похожими на мою ценность. Спасибо за вашу помощь – user3266908

0

Прежде всего вы сравниваете UserId и счетчик UserId, который может создать проблему.

int result = (int)cmd.ExecuteScalar(); 

if (result>0) 
{ 
    Response.Redirect("~/Services/MS/OT/igive"); 
} 
else 
{ 
//User not registered. 
} 
0
int result = (int)cmd.ExecuteScalar(); 

if (result>0) 
{ 
    Response.Redirect(""); 
} 
Смежные вопросы