verwendetes Datenbanksystem: MS SQL Server 2005
Hallo, ich habe ein kleines Problem und hoffe mir kann jemand weiterhelfen:
Ich muss ein Setup-Programm zum Erstellen einer Datenbank programmieren. Wenn dieses Setup geöffnet wurde und die Datenbank aber schon erstellt ist, soll automatisch erkannt werden, dass die DB eben schon vorhanden ist.
Nun zu meiner Frage:
Wie kann ich mittels C# überprüfen ob eine Datenbank existiert?
Danke schon mal im vorraus...
mfg
Verbinde dich mit der master Datenbank und frage über "sys.databases" ab, ob die DB bereits existiert.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
Kann mir jemand erklären, wo hier der Fehler liegt?
if exists(select * from dbo.sysobjects where id = object_id(N'[dbo].[GWS]') and OBJECTPROPERTY(id,N'IsUserTable')) = 1
Fehlermeldung:
In der Nähe von ')' wurde ein nicht boolescher Ausdruck in einem Kontext angegeben, in dem eine Bedingung erwartet wird.
hat sich erledigt, war sowieso ein falscher befehl...
danke nochmal, mit dbo.sysdatabases hat es funkitoniert
Ich mache das so :
public bool DatabaseExists(string server, string database) // prüft ob Datenbank vorhanden ist
{
DbConnection conn = CreateConnection(dbprovider, server, database);
bool ok = true;
try
{
conn.Open();
}
catch (Exception ex)
{
ok = false;
}
conn.Close();
if (Parameter.dbprovider == Parameter.DatenbankProvider.OracleSQLServer) ok = true;
return ok;
}
Vorteil : Funktioniert mit jedem Datenbankserver.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3