当行状态为特定值时,我正在使用SQL SELECT字符串返回数据库中的所有值。然后我将这些信息存储到标签中。我的问题是,当我选择没有“WHERE status = 2”部分的所有内容时,一切都很好,但是当我尝试指定我的标签只包含一个值而不是列表时。
SQL = "SELECT * FROM HonApp.dbo.apps WHERE status=2";
..create sql data reader here..
myReader.Read();
if (myReader.HasRows)
{
while (myReader.Read())
{
emailList.Text += myReader[5].ToString() + ", ";
}
}
我认为正在发生的事情是,不是迭代并附加每封电子邮件,而是每次都覆盖标签。任何我可能错的想法?
注意:它在没有“WHERE status”部分的情况下工作,但它返回数据库中的所有值;我只想要状态为2的电子邮件。
答案 0 :(得分:1)
你在myReader.Read()
循环之前调用while
,这将跳过你的第一个记录。所以如果有一个记录具有给定的id,那么你基本上忽略了它,这就是为什么你看不到标签中的任何内容。您应该删除该行。您的while
循环没问题,因为您使用的+=
不会覆盖您的值。如果有一个或多个记录具有给定的ID(2在这种情况下)它应该正常工作。