-2

我的数据库中有 5 条记录,下面的代码可以正常检索所有 5 条记录并写入它们。

while (dr.Read())
{
     String a1 = dr[0].ToString();
     Response.Write(a1);
}

但是,当我删除Resonse.Write(a1);并使用repvals = a1;输出时,只显示最后一条记录,而不是所有记录。

while (dr.Read())
{
    String a1 = dr[0].ToString();
    repvals = a1;
}

在上面的代码中,repvals 是一个服务器端 HTML 控件,声明为 <%=repvals%> 并声明为protected string repvals在代码页中。

4

3 回答 3

6

您需要在每次迭代中将新字符串连接到 repvals 中,所以试试这个

while (dr.Read())
{
    String a1 = dr[0].ToString();
    repvals += a1;
}
于 2012-10-14T05:23:39.930 回答
5

因为您每次都在覆盖该值。您需要连接字符串,而不是每次都将其分配给同一个变量。见下文:

repvals="";
while (dr.Read())
  {
     String a1 = dr[0].ToString();
     repvals = repvals + a1;
   }
于 2012-10-14T05:23:48.320 回答
0

您已经声明了 repvals 并向其写入了 5 次值——最后一次写入是您所看到的,因为您在循环之后进行渲染。我会在你的标记中使用一个数组或列表,并在你的循环中累积来自 db 的值。

于 2012-10-14T05:25:03.667 回答