我正在尝试在多行文本框中显示我的数据,如此
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();
}
此代码仅显示一列结果。我如何获得所有列?
答案 0 :(得分:0)
您当前代码的问题在于您为每列覆盖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文本框。列表视图之类的东西。
答案 1 :(得分:0)
您可以在此代码中对代码进行更正:
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;
}