C#将每个表行从数据库添加到文本框

C#将每个表行从数据库添加到文本框,c#,sql-server,database,textbox,C#,Sql Server,Database,Textbox,我在将数据库表绑定到文本框时遇到了一个问题。我这里的代码从表中获取了我需要的所有列,但只显示了1行数据。有没有一种简单的方法可以使表中的每一行都显示在文本框中?或者其他类型的文本列表 SqlConnection cn = new SqlConnection("SERVER=myserver;DATABASE=mydb;Trusted_Connection=True"); SqlCommand cmd = new SqlCommand(); SqlDataReader dr = null; cm

我在将数据库表绑定到文本框时遇到了一个问题。我这里的代码从表中获取了我需要的所有列,但只显示了1行数据。有没有一种简单的方法可以使表中的每一行都显示在文本框中?或者其他类型的文本列表

SqlConnection cn = new SqlConnection("SERVER=myserver;DATABASE=mydb;Trusted_Connection=True");
SqlCommand cmd = new SqlCommand();
SqlDataReader dr = null;

cmd.Connection = cn;
cn.Open();
cmd.CommandText = "SELECT DisasterID,DisasterType,Location,CurrentStatus,IntensityLevel,Latitude,Longitude FROM Disasters";
dr = cmd.ExecuteReader();
if (dr.Read()) {
    txtFeeds.Text = dr["DisasterID"].ToString() + " " + dr["DisasterType"].ToString() + " " + dr["Location"].ToString() + " " + dr["CurrentStatus"].ToString() + " " + dr["IntensityLevel"].ToString() + " " + dr["Latitude"].ToString() + " " + dr["Longitude"].ToString();
}
cn.Close();

您需要
while
循环并通过
txtFeeds.Text+=

while(dr.Read()) {
    txtFeeds.Text += dr["DisasterID"].ToString() + " " 
   + dr["DisasterType"].ToString() + " " 
   + dr["Location"].ToString() + " " 
   + dr["CurrentStatus"].ToString() + " " 
   + dr["IntensityLevel"].ToString() + " " 
   + dr["Latitude"].ToString() + " " + dr["Longitude"].ToString();
}
若您需要更高的性能,可以使用添加文本,并最终使用方法设置文本框文本

编辑。

StringBuilder sb = new StringBuilder();
while (dr.Read())
{
    sb.AppendLine(dr["DisasterID"].ToString() + " " 
    + dr["DisasterType"].ToString() + " " 
    + dr["Location"].ToString() + " " 
    + dr["CurrentStatus"].ToString() + " " 
    + dr["IntensityLevel"].ToString() + " " 
    + dr["Latitude"].ToString() + " " + dr["Longitude"].ToString());
}

txtFeeds.Text = sb.ToString();

您需要
while
循环并通过
txtFeeds.Text+=

while(dr.Read()) {
    txtFeeds.Text += dr["DisasterID"].ToString() + " " 
   + dr["DisasterType"].ToString() + " " 
   + dr["Location"].ToString() + " " 
   + dr["CurrentStatus"].ToString() + " " 
   + dr["IntensityLevel"].ToString() + " " 
   + dr["Latitude"].ToString() + " " + dr["Longitude"].ToString();
}
若您需要更高的性能,可以使用添加文本,并最终使用方法设置文本框文本

编辑。

StringBuilder sb = new StringBuilder();
while (dr.Read())
{
    sb.AppendLine(dr["DisasterID"].ToString() + " " 
    + dr["DisasterType"].ToString() + " " 
    + dr["Location"].ToString() + " " 
    + dr["CurrentStatus"].ToString() + " " 
    + dr["IntensityLevel"].ToString() + " " 
    + dr["Latitude"].ToString() + " " + dr["Longitude"].ToString());
}

txtFeeds.Text = sb.ToString();

首先,尝试在单个文本框中显示表中的记录是个坏主意。 如果你还想这么做

使用while循环而不是IF条件

 while(dr.Read()) 
{

}
使用字符串生成器并向其附加所有列值,在循环存在后使用字符串生成器中的值并将其设置为字段

StringBuilder values = new StringBuilder();

while(dr.Read()) {
            values.Append( dr["DisasterID"].ToString() + " " + dr["DisasterType"].ToString() + " " + dr["Location"].ToString() + " " + dr["CurrentStatus"].ToString() + " " + dr["IntensityLevel"].ToString() + " " + dr["Latitude"].ToString() + " " + dr["Longitude"].ToString());
        }

 txtFeeds.Text = values.ToString();

首先,尝试在单个文本框中显示表中的记录是个坏主意。 如果你还想这么做

使用while循环而不是IF条件

 while(dr.Read()) 
{

}
使用字符串生成器并向其附加所有列值,在循环存在后使用字符串生成器中的值并将其设置为字段

StringBuilder values = new StringBuilder();

while(dr.Read()) {
            values.Append( dr["DisasterID"].ToString() + " " + dr["DisasterType"].ToString() + " " + dr["Location"].ToString() + " " + dr["CurrentStatus"].ToString() + " " + dr["IntensityLevel"].ToString() + " " + dr["Latitude"].ToString() + " " + dr["Longitude"].ToString());
        }

 txtFeeds.Text = values.ToString();

这很好,但是你能告诉我如何在每一行/条目后开始一行吗?Thanks@NickV添加了示例代码,
StringBuilder.AppendLine
将把每一行重新编码为新行,效果很好,但您能否告诉我如何在每一行/条目后开始新行?Thanks@NickV添加了示例代码,
StringBuilder.AppendLine
会将每个重新编码添加为新行