2013-05-12 9 views
0

вот проблема:ASP.NET чтение из базы данных

Я хочу сделать что если значение то же, что является TextBox2.Text и в Label2.Text, я не попадаю на следующую страницу, но вместо этого я бы предложено ввести другую text.Here в мой код:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    con.Open(); 
    SqlCommand cmd = new SqlCommand(); 
    cmd.Connection = con; 
    cmd = new SqlCommand("SELECT Question FROM Animals WHERE Question = @Question", con); 
    cmd.Parameters.AddWithValue("@Question", Label2.Text); 
    cmd.ExecuteNonQuery(); 
    dr = cmd.ExecuteReader(); 

    if (dr.Read()) 
    { 
     Response.Write("Enter different question"); 
    } 
    else 
    { 
     if(dr[0].ToString() != TextBox2.Text) 
     Session["question"] = Label2.Text; 
     Session["Animal3"] = TextBox1.Text; 
     Session["Question2"] = TextBox2.Text; 
     Session["Animal2"] = Label3.Text; 
     Session["Animal"] = Label4.Text; 

     Response.Redirect("~/StartGame2.aspx"); 
    } 
+0

непонятные чем вы хотите. –

+0

что такое 'TextBox2',' Label2' ?? , пожалуйста, объясните подробнее –

+0

Если данные в текстовом поле2 равны метке2 (которая уже хранится в базе данных), она будет жаловаться на это и попросить ввести разные данные. –

ответ

0

Вы можете использовать CompareValidator на TextBox2

<asp:CompareValidator 
     id="Validator1" 
     ControlToValidate="TextBox2" 
     ControlToCompare="Label2" 
     Type="String" 
     Text="Enter different text." 
     runat="server" /> 
+0

Не работает –

+0

Рабочий пример -> http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_comparevalidator –

0

Попробуйте заменить метод с этим:

 protected void Button1_Click(object sender, EventArgs e) 
    { 
     con.Open(); 
     SqlCommand cmd = new SqlCommand(); 
     cmd.Connection = con; 
     cmd = new SqlCommand("SELECT Question FROM Animals WHERE Question = @Question", con); 
     cmd.Parameters.AddWithValue("@Question", Label2.Text); 
     cmd.ExecuteNonQuery(); 
     dr = cmd.ExecuteReader(); 

     if (dr.Read()) 
     { 
      if (dr[0].ToString() == TextBox2.Text) 
      { 
       Response.Write("Enter different question"); 
       return; 
      } 
     } 

     Session["question"] = Label2.Text; 
     Session["Animal3"] = TextBox1.Text; 
     Session["Question2"] = TextBox2.Text; 
     Session["Animal2"] = Label3.Text; 
     Session["Animal"] = Label4.Text; 

     Response.Redirect("~/StartGame2.aspx"); 

    } 
+0

Неверная попытка прочитать, когда данных нет. –

+0

О, извините, посмотрите мое редактирование. – jomsk1e

+0

Оцените усилия @JRC, но я решил свою проблему. –

Смежные вопросы