Laden...

Überprüfen ob eine Datenbank existiert

Erstellt von schillerdeluxe vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.060 Views
S
schillerdeluxe Themenstarter:in
138 Beiträge seit 2006
vor 15 Jahren
Überprüfen ob eine Datenbank existiert

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

3.511 Beiträge seit 2005
vor 15 Jahren

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)

S
schillerdeluxe Themenstarter:in
138 Beiträge seit 2006
vor 15 Jahren

Danke, das hört sich nach einer guten Idee an...

mfg

S
schillerdeluxe Themenstarter:in
138 Beiträge seit 2006
vor 15 Jahren

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.

S
schillerdeluxe Themenstarter:in
138 Beiträge seit 2006
vor 15 Jahren

hat sich erledigt, war sowieso ein falscher befehl...

danke nochmal, mit dbo.sysdatabases hat es funkitoniert

3.825 Beiträge seit 2006
vor 15 Jahren

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