如何逐行在多行TextBox中显示数据库中的数据?

时间:2013-04-12 15:07:51

标签: c# .net textbox

我试过下面的代码。它运行成功,但在txtQueue(文本框)中显示结果为“System.Data.DataView”,但不显示数据。

 try
 {
    AddURL objAddurls = new AddURL();
    objAddurls.ExecuteSql("select sURL from addurl where iStatus=1 AND iLicenseID='" + CommonMethods.iLicenseID + "'");
    txtQueueURLs.Text = objAddurls.DefaultView.ToString();
 }

 catch (Exception ee)
 {

 } 

任何机构都可以告诉我这个代码有什么问题或建议我新代码吗? 提前致谢。

2 个答案:

答案 0 :(得分:1)

  

如何在多行TextBox行中显示数据库中的数据   线?

从数据库中检索数据的方法很少,而这只是其中之一,您选择哪种方法并不重要。

通过将 textBox.Multiline 属性设置为true并将 Environment.NewLine 添加到 textBox.Text,可以逐行将数据写入textBox。 每次需要换行。

以下是可能对您有帮助的示例代码:

using System.Data.SqlClient;

namespace StackTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string connectionString = @"Data Source=(localdb)\Projects;Initial Catalog=DbTest;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False";
            string selectString = "select * from TblTest";
            textBox1.Multiline = true;

            SqlConnection conn = new SqlConnection(connectionString);
            SqlCommand cmd = new SqlCommand(selectString,conn);

            conn.Open();
            SqlDataReader rdr = cmd.ExecuteReader();

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

            conn.Close();                 
        }
    }
}

答案 1 :(得分:0)

您正在调用DataView.ToString()上的ToString方法,该方法返回组件的名称。我想你想迭代DefaultView中的行并将TextBox值赋值给它。

 StringBuilder sb  = new StringBuilder();
 foreach (DataRowView rowView in objAddurls.DefaultView)
  {
   DataRow row = rowView.Row;
   // build a string from your row //
  }

txtQueueURLs.Text = sb.ToString()