【问题标题】:sql stored procedure - Having problems retreiving multiple rows of data with Idatareadersql 存储过程 - 使用 Idatareader 检索多行数据时出现问题
【发布时间】:2011-06-09 13:58:41
【问题描述】:

我有一个执行此操作的存储过程:

SELECT TOP 4 FROM dbo.test

(表格包含 5 行)

我的 c# 代码是:

IDataReader test= ((IDataReader)(DataProvider.Instance().ExecuteReader("fetchtest")));
 test.Read();
 title1.Text = test.GetString(0);
 title2.Text = test.GetString(1);
 title3.Text = test.GetString(2);
 title4.Text = test.GetString(3); 

但是我只能显示 0 和 1。2+ 会给我一个索引错误。有没有更好的方法来检索所有行?

谢谢

【问题讨论】:

    标签: c# asp.net sql stored-procedures idatareader


    【解决方案1】:

    IDataReader.GetString(2) 返回第三列的值,而不是记录。您需要使用Read() 方法前进到下一条记录。

    【讨论】:

    • 哦,有道理。那么我如何从选择的 TOP 4 中获取所有数据?还有其他方法可以转储信息吗?
    • 看看我添加的链接。它有一个可以重复使用的示例代码。
    【解决方案2】:

    就像 a1ex07 所说,GetString 得到第 n 列。这是一个完整的代码示例。

    List<string> titles = new List<string>();
    using (IDataReader test = ((IDataReader)(DataProvider.Instance().ExecuteReader("fetchtest"))))
    {
        while (test.Read())
        {
           titles.Add(test.GetString(0));
        }
    }
    
    
    title1.Text = titles[0];
    title2.Text = titles[1];
    title3.Text = titles[2];
    title4.Text = titles[3];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-14
      • 1970-01-01
      • 2011-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多