我的数据库中有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
。
您需要在每次初始化的repvals中连接新字符串,因此请尝试
while (dr.Read())
{
String a1 = dr[0].ToString();
repvals += a1;
}
因为每次都要覆盖值。您需要连接字符串,而不是每次都将其分配给同一个变量。见下文:
repvals="";
while (dr.Read())
{
String a1 = dr[0].ToString();
repvals = repvals + a1;
}
您已经声明了repvals并向其写入了5次值——最后一次写入是您看到的,因为您在循环之后进行渲染。我会在标记中使用数组或列表,并在循环中累积数据库中的值。