我有类似下面的代码,这个存储过程'get2Rows'返回2行,我想获得第1行并获取列值,然后获取第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....
}
};
}
答案 0 :(得分: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。