Warum verursacht dieser Code eine ungültige Operation Exception?InvalidOperationException Die Verbindung wurde nicht geschlossen. Der aktuelle Status der Verbindung ist offen
private SqlCommand cmd; // initialized in the class constructor
public void End(string spSendEventNotificationEmail) {
try {
cmd.CommandText = spSendEventNotificationEmail;
cmd.Parameters.Clear();
cmd.Parameters.Add("@packetID", SqlDbType.Int).Value = _packetID;
cmd.Parameters.Add("@statusID", SqlDbType.Int).Value = _statusID;
cmd.Parameters.Add("@website", SqlDbType.NVarChar, 100).Value = Tools.NextStep;
cmd.Connection.Open();
cmd.ExecuteNonQuery();
} finally {
cmd.Connection.Close();
cmd.Parameters.Clear();
cmd.Dispose();
}
endCall = true;
}
Vielleicht vor Ihrer Verbindung, die Sie geöffnet haben? – Zbigniew
Ich denke, dass die Wurzel des Problems in der Instanz von SqlCommand im Klassenkonstruktor initialisiert ist. Wenn Sie diese Variable in Ihrem gesamten Code verwenden, kann dies leicht missbraucht werden und zu bösen Fehlern in anderen Teilen Ihres Codes führen. – Steve
http://StackOverflow.com/a/9707060/4068 –