如果我在SQL中使用参数化查询(带有C#的ASP.NET),例如
var db = Database.Open("Database1");
SqlCommand cmd = new SqlCommand("SELECT * FROM pageinfo WHERE pageID = @pageID");
cmd.Parameters.AddWithValue("@pageID", 1);
稍后在页面中,我想要对检索到的任何数据执行foreach循环:
foreach(var row in ???)
我将使用什么(代替???)来访问刚刚检索到的数据?
感谢。
答案 0 :(得分:3)
这取决于您执行查询的如何。
完成例如,在您的情况下,您可以:
....
SqlDataReader reader = cmd .ExecuteReader();
while (reader.Read())
{
...
}
但是还有其他方法来重新获取数据,例如使用DataSet 有关如何执行此操作的完整示例,请查看:
答案 1 :(得分:0)
您可以使用while
代替foreach
var db = Database.Open("Database1");
SqlCommand cmd = new SqlCommand("SELECT * FROM pageinfo WHERE pageID = @pageID");
cmd.Parameters.AddWithValue("@pageID", 1);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader[0]);
}
迭代语句。看看这个;
reader[0]
reader[1]
返回第一列的第一行,{{1}}返回第二列的第一行(如果您的数据当然有。)