2015-07-22 1 views
0

У меня есть сервер Sql, подключенный к приложению формы C#, которое отображает строки данных. На стороне сервера Sql данные сохраняются как varChar (MAX) во всех трех экземплярах. Я просто хотел бы отобразить данные в RichTextBox в форме. Данные только показывают ограниченное количество исходных данных (выходит как неполное) в первом RichTextBox (DataQualityTextBox), и оно не отображается на втором и третьем RichTextBoxes (LoadFailureTextBox и LoadPerformanceTextBox).Данные не отображаются в C# RichTextBox

Это мой код:

SqlConnection conDataBase = new SqlConnection(constring); 

       // POPULATING THE DATA QUALITY TAB 
       Query = "SELECT " + notes_field1 + ", "+ notes_field2 + ", " + notes_field3 + " FROM "+ database +" " + 
         " WHERE RunDate = '" + formattedDate + "'" + 
         " AND PackageName = '" + tdwl + "'" + 
         " AND Instance = '" + instance + "'; "; 

       SqlCommand cmdDataBase = new SqlCommand(Query, conDataBase); 
       SqlDataReader myReader; 

       try 
       { 
        conDataBase.Open(); 
        myReader = cmdDataBase.ExecuteReader(); 

        while (myReader.Read()) 
        { 
         DataQualityTextBox.Text = myReader[0].ToString(); 
         LoadFailureTextBox.Text = myReader[1].ToString(); 
         LoadPerformanceTextBox.Text = myReader[2].ToString(); 
        } 
        conDataBase.Close(); 
       } 
       catch (Exception ex) 
       { 
        MessageBox.Show(ex.Message); 
       } 

Большое спасибо!

+0

Это * заменяет * весь текст на каждом цикл строк, это то, что вы хотите? (если не использовать '.AppendText') -' LoadFailureTextBox.Text = myReader [0] .ToString(); 'должно быть предположительно' LoadFailureTextBox.Text = myReader [1] .ToString(); ' –

+0

Да исправлено. Я хочу прочитать данные из базы данных Sql Server и показать, что на RichTextBox –

+0

Включили ли вы текст MultiLine во всех текстовых окнах? – Lee

ответ

1

попробовать:

while (myReader.Read()) 
        { 
         DataQualityTextBox.Text += myReader[0].ToString(); 
         LoadFailureTextBox.Text += myReader[1].ToString(); 
         LoadPerformanceTextBox.Text += myReader[2].ToString(); 
        } 

или

while (myReader.Read()) 
        { 
         DataQualityTextBox.AppendText(myReader[0].ToString()); 
         LoadFailureTextBox.AppendText(myReader[1].ToString()); 
         LoadPerformanceTextBox.AppendText(myReader[2].ToString()); 
        } 

Он также будет хорошей идеей использовать параметры в запросе вместо конкатенации строк

+0

* Всегда * использовать 'AppendText', я бы сказал; он намного превосходит его. –

+0

Да работает хорошо сейчас, однако, когда у меня есть значения «NULL» из БД, я не получаю никаких значений во втором и третьем RichTextBox, почему это так? –