我试过下面的代码。它运行成功,但在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)
{
}
任何机构都可以告诉我这个代码有什么问题或建议我新代码吗? 提前致谢。
答案 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()