1

如果我在 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 ???)

我将使用什么(代替???)来访问我刚刚检索到的数据?

谢谢。

4

2 回答 2

3

这取决于您如何执行查询。

通常由SqlCommand.ExecuteReader完成

例如,在您的情况下,您可以:

.... 

 SqlDataReader reader = cmd .ExecuteReader();
 while (reader.Read())
 {
   ...
 }

但是还有其他方法可以重新获取数据,例如使用DataSet 有关如何执行此操作的完整示例可以查看:

为初学者使用 ADO.NET

于 2013-03-18T14:01:38.757 回答
0

您可以使用while迭代语句 withSqlCommand.ExecuteReader而不是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]如果您的数据当然有,则返回第一列的第一行并返回第二列的第一行。

于 2013-03-18T14:02:12.880 回答