SqlDataReaderを使用していないため、このエラーが発生する理由を理解しようとしています.SQL Serverを使用していて、インターフェイスが特定の型を返していることがわかりますが、.NETに代わりにIDataReaderを使用するように指示しています.
コードは次のとおりです。
public DataSet ExecuteSelectProcedure(string procedure, List<Parameter> parameters)
{
conexion.Open();
try
{
IDbCommand command = conexion.CreateCommand();
command.CommandType = CommandType.StoredProcedure;
command.Connection = conexion;
command.CommandText = procedure;
foreach (var parameter in parameters)
{
IDbDataParameter dataParameter = command.CreateParameter();
dataParameter.Direction = (System.Data.ParameterDirection) parameter.Direction;
dataParameter.Value = parameter.Value;
dataParameter.ParameterName = parameter.Name;
dataParameter.DbType = (DbType) parameter.Type;
command.Parameters.Add(dataParameter);
}
IDataReader result = command.ExecuteReader();
DataSet dataSet = new DataSet();
foreach (var table in (IEnumerable<IDataReader>) result)
{
DataTable dataTable = new DataTable();
dataTable.Load(table);
dataSet.Tables.Add(dataTable);
}
result.Close();
return dataSet;
}
finally
{
conexion.Close();
}
エラーは、 foreach ループで IEnumerable をキャストするときです。前もって感謝します...