Ich habe 2 SqlCommand, einer von ihnen ist verschachtelt. Warum kann ich den zweiten SqlCommand nicht ausgeben (ich verwende einen separaten SQLCommand)? Es gibt Fehler "Es ist bereits ein offener DataReader mit diesem Befehl verbunden, der zuerst geschlossen werden muss." . Wenn ich eine separate SqlConnection verwende, ist das in Ordnung.Nested SQLCommand nicht zulassen?
SqlCommand cmd = new SqlCommand(qry, cn);
SqlDataReader rd = cmd.ExecuteReader();
while (rd.Read())
{
....
try
{
SqlCommand cmd2 = new SqlCommand(qry2, cn);
cmd2.ExecuteNonQuery();
}
catch (Exception e)
{
// I get this error here
// System.Data; There is already an open DataReader associated with this Command which must be closed first.
}
}
Sie benötigen eine zusätzliche Verbindungsinstanz, um eine weitere Abfrage mit derselben Verbindungszeichenfolge für gleichzeitige Abfragen auszuführen. Da es unmöglich ist, "DataReader" beim Ausführen einer anderen Abfrage zu stoppen, ziehen Sie in Erwägung, "DataReader" -Inhalte in eine "DataTable" zu ziehen, die erste Verbindung zu schließen und beim Iterieren von 'DataTable'-Inhalten erneut zu öffnen. –