簡體   English   中英

我如何在下一行C#的多行文本框中顯示查詢結果

[英]How do i display query result in multiline text box in next line c#

我試圖在這樣的多行文本框中顯示我的數據

col1  

result

col2

result

col3

result

但是我做不到。 這是我的代碼

SqlConnection sq = new SqlConnection(ConfigurationManager.ConnectionStrings["ConString"].ConnectionString);
SqlCommand cmd = new SqlCommand("Select * from table",sq);
sq.Open();

SqlDataReader rdr = cmd.ExecuteReader();

while (rdr.Read())
{
   // pkg_details.Text = pkg_details.Text = rdr[0].ToString();
    pkg_details.Text = rdr[0].ToString();
    pkg_details.Text = rdr[1].ToString();
    pkg_details.Text = rdr[2].ToString();
}

此代碼僅顯示一列結果。 如何獲得所有列?

當前代碼的問題是您要覆蓋每一列的Text ,因此僅保留最后一列。

while (rdr.Read())
{
    pkg_details.Text += string.Join(Environment.NewLine, rdr.Take(3).Select(ToString));
}

如果您想格式化列,請嘗試類似

while (rdr.Read())
{
    pkg_details.Text += string.Join(Environment.NewLine, rdr.Take(3)
                  .Select((x, i) => $"Column {i}{Environment.NewLine}{x.ToString()}"));
}

但是我建議您使用更合適的控件視圖來顯示內容,而不要使用Mutiline文本框。 類似於列表視圖。

您可以按照以下步驟在代碼中進行更正:

        SqlCommand cmd = new SqlCommand("Select * from table",sq);
        sq.Open();

       SqlDataReader rdr = cmd.ExecuteReader();

       while (rdr.Read())
       {
          // pkg_details.Text = pkg_details.Text = rdr[0].ToString();
           pkg_details.Text += rdr[0].ToString() + Environment.NewLine;
           pkg_details.Text += rdr[1].ToString() + Environment.NewLine;
           pkg_details.Text += rdr[2].ToString() + Environment.NewLine;
       }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM