2013-03-06 5 views
0

Я пытаюсь отобразить несколько строк из запроса в литерал в asp.net C#. Вот мой код для этого:Использование литерала для отображения результатов по запросу

 protected void Page_Load(object sender, EventArgs e) 
    { 
     SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["RaiseFantasyLeagueConnectionString"].ConnectionString); 
     SqlCommand cmd = new SqlCommand("[dbo].[GetUsersLeagues]", conn); 
     cmd.CommandType = CommandType.StoredProcedure; 

     string userId = Membership.GetUser().ProviderUserKey.ToString(); 
     SqlParameter userIDParam = new SqlParameter("@userId", userId); 

     cmd.Parameters.Add(userIDParam); 

     conn.Open(); 
     SqlDataReader dReader = cmd.ExecuteReader(CommandBehavior.CloseConnection); 
     while (dReader.Read()) 
     { 
      usersLeagues.Text = (dReader["LeagueName"].ToString()); 
     } 
     dReader.Close(); 
     conn.Close(); 

    } 

Моя проблема заключается в том, что литерал отображает только один из строк, я попытался это с коробкой списка и были отображены все строки.

Любые предложения?

Заранее благодарен!

+0

try usersLeagues.Text + = (dReader ["LeagueName"]. ToString()); –

ответ

1

Вы заменяете значение Text собственности на каждой итерации:

while (dReader.Read()) 
{ 
    usersLeagues.Text = (dReader["LeagueName"].ToString()); 
} 

Вместо этого, вы должны СЦЕПИТЬ значения на каждой итерации:

while (dReader.Read()) 
{ 
    usersLeagues.Text += (dReader["LeagueName"].ToString()) + Environment.NewLine; 
} 

В вышеприведенном например, с использованием += вызывает добавление текущего значения usersLeagues.Text вместо замены.

+0

Отлично, спасибо! Я получаю} в конце результатов, любую идею, почему это может быть? – JackofAll

+0

@MattHill - Ничто не выпрыгивает из кода, который вы опубликовали. Может быть, вы добавите '}' позже? Или что это в вашей базе данных? – Oded

+0

Нет, я тоже этого не делаю, это странно. Я тоже не понимаю, почему! – JackofAll

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