Данные не отображаются в меток с использованием datareader

Я новичок в области ASP.NET, и я создал такую функцию, как:

public void lbtitle()
{
 IDataReader dr = d.FetchDataReader("SELECT top(5) ItineraryMaster.ItinerariesId, ItineraryMaster.Title FROM ItineraryMaster WHERE ItineraryMaster.Title = '" + lbltitle.Text + "'");

 if (dr.Read())
 {
 lbltitle.Text = dr["Title"].ToString();
 }
}

и за кодом:

<asp:label id="Lbl_id" runat="server" text="<%#Eval(" itinerariesid")="" %="">" visible="false"></asp:label>
<asp:label id="lbltitle" runat="server" text="<%# Eval(" title")="" %="">"></asp:label>

элемент управления dr.read() не dr.read(). Я не знаю, почему это происходит.

и код считывателя данных:

public SqlDataReader FetchDataReader(string sqlQuery)
{ 
 SqlDataReader tempDataReader = (SqlDataReader) objSqlDatabase.ExecuteReader(CommandType.Text, @sqlQuery); 
 return tempDataReader; 
}
1 ответ

почему вы сбиваете с толку.

выполнить все задачи внутри инструкции using. нет необходимости определять несколько функций для реализации этого. здесь я изменил код. попробуй это

string connstring = ConfigurationManager.ConnectionStrings["myconnstring"].ConnectionString;
 using (SqlConnection cn = new SqlConnection(connstring))
 {
 cn.Open();
 string title = lbltitle.Text.Trim();
 string query = @"SELECT top(5) ItinerariesId, Title 
 FROM ItineraryMaster WHERE ItineraryMaster.Title = @title";
 SqlCommand cmd = new SqlCommand(query, cn);
 cmd.Parameters.Add(new SqlParameter("@title", title));
 SqlDataReader dr = cmd.ExecuteReader();
 while (dr.Read())
 {
 lbltitle.Text = lbltitle.Text.ToString() + "" + dr["Title"].ToString();
 }
 }

licensed under cc by-sa 3.0 with attribution.