2014-01-29 2 views
0

Ну, я не могу вычислить ошибку. Нет данных в переменной SqlDataReader. Данные, полученные переменной SqlDataReader, хранятся в Label2.Данные не поступают в SqlDataReader

Код:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.Data.SqlClient; 

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
     SqlConnection con = new SqlConnection("Server=(local);Database=records;User Id=sasfddsf;Password=12345"); 
     try 
     { 
      con.Open(); 
      SqlCommand cmd = new SqlCommand("select id,name,referencename from records where name = '" + Label1.Text.ToString() + "'", con); 

      var SqlDataReader = cmd.ExecuteReader(); 
      while (SqlDataReader.Read()) 
      { 
       Label2.Text += Convert.ToString(SqlDataReader["name"]) + Convert.ToString(SqlDataReader["referenceName"]); 
      } 
      SqlDataReader.Close(); 
     } 
     catch (Exception e1) 
     { 
      Label2.Text = "Error: " + e1.Message; 
     } 
     finally 
     { 
      con.Close(); 
     } 
    } 
} 
+1

возвращают ли SQL запрос все строки с заданным значением 'Label1.Text'? – ekad

+2

Вы приглашаете людей на sql-injection, объединяя свой sql-запрос. Вместо этого используйте sql-параметры. –

+1

И какая ошибка? –

ответ

1

Попробуйте

 SqlCommand cmd = new SqlCommand("select id,name,referencename from records where name = @TextBoxName", con); 
     com.Parameters.AddWithValue("@TextBoxName",Label1.Text.ToString()); 
     SqlDataReader rdr = cmd.ExecuteReader(); 
     while (rdr.Read()) 
     { 
      Label2.Text += Convert.ToString(rdr["name"]) + Convert.ToString(rdr["referenceName"]); 
     } 
     rdr.Close(); 
+2

Я понятия не имею, почему это немедленно сохраняется. Как это отличается? –

+0

@TimSchmelter: параметры имеют значение. –

+0

@JohnSaunders: в ​​первой версии параметров не было, это была такая же версия, что и OP, используемая с другим именем переменной для читателя. Кроме того, даже если использование параметров является хорошим советом, неясно, почему это решает проблему. –

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