3

我有如下代码,这个存储过程'get2Rows'返回2行,我想获取第一行并获取列值,然后是第二行并获取列值。我需要如何迭代?

using (System.Data.Common.DbCommand dbCommand = DataAccess.Instance().Database.GetStoredProcCommand("get2Rows"))
{       
    using (IDataReader reader = DataAccess.Instance().Database.ExecuteReader(dbCommand))
    {
         while (reader.Read())//here i want to get the 1st row
         {
             //here i want to get the columns of the 1st row....
         }                            
    };                        
}
4

1 回答 1

1
while (reader.Read())//here i want to get the 1st row
{
    //here i want to get the columns of the 1st row....
    int firstColumn = Convert.ToInt32(dr[0]["intColumn"].ToString());
    string secondColumn = dr[0]["stringColumn"].ToString();
    // etc.
}

你得到了这两行,因为你正在循环它们。由您决定如何存储它们,也许在一个集合中?

更多信息:http ://www.csharp-station.com/Tutorial/AdoDotNet/lesson04

如果您使用 DataReader,我的建议是一次使用一行,因为它就是这样操作的。如果你想要内存中的所有行,你应该使用 DataSet 来代替。

于 2012-05-22T16:31:27.353 回答