如何在RichTextBox中显示每个查询行?

时间:2019-04-29 15:10:58

标签: c# sql-server

我的问题是,当我进行查询并想将此查询加载到richtextbox中时,它不会显示所有结果。

例如:

date: 22-03-2019
subject: Math 
date: 24-03-2019
subject: Grammer   

但是当我加载richtextbox时,我看到了第一个结果,第二个结果没有显示。

conn.Open();
var cmd = new SqlCommand($"SELECT date, subject FROM table WHERE table.id > 5", conn) 
while (reader.Read())
 {
 rtb.Text=Convert.ToDateTime(reader[0]).ToString("dd-MM-yyyy") + "\n" + 
 (reader[1]).ToString();
 }

1 个答案:

答案 0 :(得分:0)

假设我们有一个包含两列的表格(categoryID,CategoryName) 并且我们希望在一行中显示每一行:

void PrintRows(SqlConnection connection)
{
    using (connection)
    {
        SqlCommand command = new SqlCommand(
          "SELECT CategoryID, CategoryName FROM Categories;",
          connection);
        connection.Open();

        SqlDataReader reader = command.ExecuteReader();

        if (reader.HasRows)
        {
            while (reader.Read())
            {
                Console.WriteLine("{0}\t{1}", reader.GetInt32(0),
                    reader.GetString(1));
            }
        }
        else
        {
            Console.WriteLine("No rows found.");
        }
        reader.Close();
    }
}

在您遇到的情况下,您应该像这样修改代码:

conn.Open();
var cmd = new SqlCommand($"SELECT date, subject FROM table WHERE table.id > 5", conn) 
while (reader.Read())
 {
    rtb.AppendText(reader.GetDateTime(0).ToShortDateString() + "\n" +reader.GetString(1));
 }