我正在使用C#和sql以预定方式加载库。 在查询方面一切都很好 这是我的示例查询 及其结果:
SELECT productName,productType,image_desc
FROM Products3
WHERE productType = 'Souvenirs'
但是,如果我将此查询与我的c#代码一起使用。 Button Pins
似乎没有被跳过。
private void load_souvenirs_products()
{
con.Open();
cmd = new SqlCommand(@"SELECT productName,productType,image_desc
FROM Products3
WHERE productType = 'Souvenirs'", con);
rdr = cmd.ExecuteReader();
if (rdr.Read())
{
while (rdr.Read())
{
product_name = rdr["productName"].ToString();
product_type = rdr["productType"].ToString();
image_desc = rdr["image_desc"].ToString();
// foreach()
lbl_table.Text += @"<div class='col-lg-3 col-md-4 col-xs-6 thumb'>
<a href='\CustomerFiles\TermsPDF\Terms_and_Conditions_Order_Form.pdf' download>
<p><small>" + product_name + @"</small></p>
<img class='img-responsive' src='../../Images/ProductImage/" + image_desc + @"' alt=''>
</a>
</div>";
}
}
con.Close();
}
此查询应加载{{1>} 纪念品的所有数据。
我哪里出错了?因为这也发生在我所有的产品列表上。所有第一行都跳过了。
我正在关注bootstrap gallery的this示例。
答案 0 :(得分:1)
因为你的while循环嵌套在if语句中,所以在访问数据之前你实际上是在调用rdr.Read两次。这意味着总是跳过返回结果的第一行。
你应该摆脱if语句,只使用while循环。