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

本文关键字:检索 数据 查询 SQL 参数 | 更新日期: 2023-09-27 18:04:24

如果我使用的是参数化查询(ASP。. NET和c#)中的SQL,例如

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 ???)

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

谢谢。

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

这取决于如何执行查询。

通常由SqlCommand完成。ExecuteReader

例如,您可以:

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

但是也有其他方法来检索数据,例如使用DataSet有关如何做到这一点的完整示例可以查看:

使用ADO。. NET入门指南

可以用SqlCommand.ExecuteReader代替foreach来使用while迭代语句。看看这个;

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]返回第二列的第一行,如果你的数据有。