无法将类型为“System.Data.SqlClient.SqlDataReader”的对象强制转换为“System.Collections.Generic.IEnumerable”
我一直在试图理解为什么它给我这个错误,因为我没有使用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时。提前致谢...
没有找到相关结果
已邀请:
1 个回复
怪酞撩匹
,因为这是
返回的实际类型。然后你试图将它转换为
,但目前尚不清楚原因。你为什么期望这个工作? 你通过调用
迭代
中的多个表(等)。例如: