使用参数化SQL查询中的检索数据

时间:2013-03-18 13:58:51

标签: c# asp.net sql

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

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

感谢。

2 个答案:

答案 0 :(得分:3)

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

通常由SqlCommand.ExecuteReader

完成

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

.... 

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

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

Using ADO.NET for beginners

答案 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}}返回第二列的第一行(如果您的数据当然有。)

相关问题