Может ли кто-нибудь объяснить мне, как я мог преобразовать эту функцию образца, чтобы использовать DataReader вместо DataSet?Выполнение хранимой процедуры с datareader вместо dataset
private void Example(int pIntValue1, pIntValue2)
{
DataSet dsExampleResults;
int i = 0;
using (var daExample = new SqlDataAccess(this.ConnectionString))
{
var cmdExample = daExample.GetStoredProcCommand("Example.dbo.GetExampleData");
daExample.AddInParameter(cmdExample, "@param1", DbType.String, name);
daExample.AddInParameter(cmdExample, "@param2", DbType.DateTime, date);
dsExampleResults = daExample.ExecuteDataSet(cmdExample);
}
if (pIntValue1 >= pIntValue2)
{
i = dsExampleResults.Tables[0].Rows.Count;
while (i > 0)
{
i--;
decExampleColumn1 = Convert.ToDecimal(dsExampleResults.Tables[0].Rows[i]["column1"]);
decExampleColumn2 = Convert.ToDecimal(dsExampleResults.Tables[0].Rows[i]["column2"]);
}
}
else
{
i = 0;
while (i < dsExampleResults.Tables[0].Rows.Count)
{
decExampleColumn3 = Convert.ToDecimal(dsExampleResults.Tables[0].Rows[i]["column3"]);
decExampleColumn2 = Convert.ToDecimal(dsExampleResults.Tables[0].Rows[i]["column2"]);
i++;
}
}
}
Я не понимаю, как это будет проходить через счетчик строк с помощью datareader. Я знаю, что я могу изменить dsExampleResults в SqlDataReader drExampleResults, а затем ExecuteReader вместо набора данных. Но обработка возвращенных данных там, где я повесил трубку. – user234702