Ich versuche, eine SQL-Abfrage wie folgt auszuführen, aber Visual Studio beschwert sich eine CA2000.Wie behebt man dieses CA2000 für SqlCommand?
public static IDictionary<string, string> TemplateDirectories(string connectionString) {
var directories = new Dictionary<string, string>();
using (var connection = new SqlConnection(connectionString)) {
connection.Open();
using (var command = new SqlCommand { Connection = connection, CommandText = "select * from PATHS" }) {
var reader = command.ExecuteReader();
while (reader.Read())
directories[reader["CODE"].ToString()] = reader["PATH"].ToString();
reader.Close();
}
}
return directories;
}
Fehler CA2000 ... Objekt 'new SqlCommand()' wird nicht entlang aller Ausnahmepfade angeordnet sind. Rufen Sie System.IDisposable.Dispose für das Objekt 'new SqlCommand()' auf, bevor alle Verweise darauf außerhalb des Bereichs liegen.
Ich versuchte mehrere Möglichkeiten, um es zu beheben, aber niemand arbeitete. Also, wie zu reparieren?
Versuchen Sie, Ihr Lesegerät in einer Anwendung zu verpacken? – garethb
Hallo @garethb Ich versuchte 'using (var reader = command.ExecuteReader()) {...}', aber diese CA2000 beschwerte sich noch .. –
Die Antworten sind richtig, dass es behoben werden kann, indem die Verwendung des Initialisierers - aber warum sind verwendest du einen trotzdem? Es gibt einen spezifischen Konstruktor für 'SqlCommand', der den Text des Befehls und ein SqlConnection-Objekt akzeptiert. –