Hallo,
ich erzeuge eine Datenbank mit Hilfe des unten angeführten Programmteils.
Die Datenbank wird erfolgreich eingerichtet und ich kann mit ihr arbeiten.
Eine weitere Funktion im Programm erlaubt das Löschen dieser Datenbank.
Beim Versuch diese Datenbank mit 'drop database' zu löschen bekomme ich aber die Meldung, das die Datenkank in Benutzung ist. Im SQL Server Manager kann ich auch erkennen, dass unmittelbar nach Aublauf des unteren Codes mehrere Verbindungen zur Datenbank bestehen, obwohl ich im Code nur eine Connection anfordere und auch wieder freigebe.
Wie kann ich erreichen, dass die Verbindungen zur Datenbank nach dem Erzeugen wieder freigegeben werden?
// Code
SqlConnection con = this.GetConnectionD4Master();
SqlConnection cond4daten = null;
SqlCommand cmd = new SqlCommand(string.Empty, con);
con.Open();
#region Schritt 1: Datenbank erzeugen
StringBuilder sb = new StringBuilder();
sb.Append("use master;");
sb.Append(string.Format(" create database {0}", dbBez));
cmd.CommandText = sb.ToString();
cmd.ExecuteNonQuery();
#endregion
#region Schritt 2: Tabellen, Procse.. anlegen
cond4daten = this.GetConnectionD4Daten(dbBez);
cmd.Connection = cond4daten;
cmd.Connection.Open();
string help = SqlAnweisung.Replace(string.Format("{0}GO{0}", "--"), "|");
string[] anweisungen = help.Split('|');
for (int i = 0; i < anweisungen.Length; i++) {
cmd.CommandText = anweisungen[i];
cmd.ExecuteNonQuery();
}
cmd.Connection.Close();
cond4daten = null;
#endregion
// End Code
ich erzeuge eine Datenbank mit Hilfe des unten angeführten Programmteils.
Die Datenbank wird erfolgreich eingerichtet und ich kann mit ihr arbeiten.
Eine weitere Funktion im Programm erlaubt das Löschen dieser Datenbank.
Beim Versuch diese Datenbank mit 'drop database' zu löschen bekomme ich aber die Meldung, das die Datenkank in Benutzung ist. Im SQL Server Manager kann ich auch erkennen, dass unmittelbar nach Aublauf des unteren Codes mehrere Verbindungen zur Datenbank bestehen, obwohl ich im Code nur eine Connection anfordere und auch wieder freigebe.
Wie kann ich erreichen, dass die Verbindungen zur Datenbank nach dem Erzeugen wieder freigegeben werden?
// Code
SqlConnection con = this.GetConnectionD4Master();
SqlConnection cond4daten = null;
SqlCommand cmd = new SqlCommand(string.Empty, con);
con.Open();
#region Schritt 1: Datenbank erzeugen
StringBuilder sb = new StringBuilder();
sb.Append("use master;");
sb.Append(string.Format(" create database {0}", dbBez));
cmd.CommandText = sb.ToString();
cmd.ExecuteNonQuery();
#endregion
#region Schritt 2: Tabellen, Procse.. anlegen
cond4daten = this.GetConnectionD4Daten(dbBez);
cmd.Connection = cond4daten;
cmd.Connection.Open();
string help = SqlAnweisung.Replace(string.Format("{0}GO{0}", "--"), "|");
string[] anweisungen = help.Split('|');
for (int i = 0; i < anweisungen.Length; i++) {
cmd.CommandText = anweisungen[i];
cmd.ExecuteNonQuery();
}
cmd.Connection.Close();
cond4daten = null;
#endregion
// End Code
Comment