【问题标题】:Using Retrieved Data from a Parameterized SQL Query使用从参数化 SQL 查询中检索到的数据
【发布时间】:2013-03-18 22:11:03
【问题描述】:

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

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

谢谢。

【问题讨论】:

    标签: c# asp.net sql


    【解决方案1】:

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

    通常由SqlCommand.ExecuteReader完成

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

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

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

    Using ADO.NET for beginners

    【讨论】:

      【解决方案2】:

      您可以将while 迭代语句与SqlCommand.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] 返回第二列的第一行,如果您的数据当然有的话。

      【讨论】:

        猜你喜欢
        • 2019-06-01
        • 2021-12-11
        • 1970-01-01
        • 2018-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-15
        • 1970-01-01
        相关资源
        最近更新 更多