Ich versuche, eine gespeicherte Prozedur mit Parametern auszuführen, und die Ergebnisse in eine DataTable
; aber nach der Ausführung, ich diese:wie DataTable aus gespeicherten Prozedur gefüllt werden
Ich kann IDataRecord
bekommen, aber ich kann nicht IDataReader
- warum? Was vermisse ich? Dank
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;
}
Dieser Aufruf 'data = reader.OfType() .ToArray();' alles lesen Aufzeichnungen. Es gibt nichts mehr im Reader für 'table.Load (reader);' um damit zu arbeiten. –
rene
Also das ist zum Beispiel wenn ich alles was ich weiß versuchen. So ist das gleiche Ergebnis, wenn ich diese Codezeile entferne. Und bitte hör auf, einen negativen Punkt zu geben, bevor der Benutzer auf deinen Kommentar antwortet: S: S –