-1

我试过下面的代码。它运行成功,但在 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)
 {

 } 

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

4

2 回答 2

1

如何在多行文本框中逐行显示数据库中的数据?

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

将数据逐行写入文本框可以通过将textBox.Multiline属性设置为 true 并在每次需要换行时将Environment.NewLine添加到textBox.Text来实现。

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

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();                 
        }
    }
}
于 2013-04-12T16:34:14.517 回答
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()
于 2013-04-12T15:25:11.900 回答