-1
パラメータを含むストアドプロシージャを実行し、結果をDataTable
に取得しようとしています。しかし、実行した後、私はこれを取得:ストアドプロシージャからDataTableを埋める方法
私はIDataRecord
を得ることができますが、私はIDataReader
できない - なぜ?何が欠けていますか?おかげ
public DataTable ExecuteProcedureTest(string storedProcedure, Dictionary<Filter, object> filterValue)
{
var parameters = GetParams(filterValue);
var sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["testconn"].ConnectionString);
var cmd = sqlConnection.CreateCommand();
SqlDataReader reader;
IDataReader dataReader;
IDataRecord[] dataRecords;
var table = new DataTable();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = storedProcedure;
foreach (var item in parameters)
{
cmd.Parameters.Add(item);
}
try
{
sqlConnection.Open();
reader = cmd.ExecuteReader();
dataRecords = reader.OfType<IDataRecord>().ToArray();
table.Load(reader);
}
catch (Exception ex)
{
throw ex;
}
finally
{
sqlConnection.Dispose();
}
//var count = dataRecords.Count();
return table;
}
このコール 'dataRecords = reader.OfType().ToArray();'すべて読みます記録。読者の中では 'table.Load(reader);'のために残っているものは何もありません。 –
rene
それは、私が知っているものすべてを試すときの例です。私はそのコード行を削除すると同じ結果です。そしてあなたのコメントにユーザーの答えが前に否定的なポイントを与えることをやめてください:S:S –