Laden...

[gelöst] Systemtabelle abfragen

Erstellt von schillerdeluxe vor 15 Jahren Letzter Beitrag vor 15 Jahren 4.137 Views
S
schillerdeluxe Themenstarter:in
138 Beiträge seit 2006
vor 15 Jahren
[gelöst] Systemtabelle abfragen

verwendetes Datenbanksystem: MS SQL Server 2005

Hallo, ich habe ein schwieriges Problem und habe leider keine ahnung wie ich dieses lösen soll / kann...

Und zwar: Ich muss überprüfen ob eine DB schon vorhanden ist. Hab ein wenig im INet recherchiert, sollte kein problem sein:

select * from [master].[dbo].[sysdatabases] where name = 'DBName'

Im Management Studio klappt das auch ganz wunderbar.

Nur im Visual Studio 2008 nicht. Die Verbindung funktioniert auch.
Doch bei diesem Codeteil, kommt eine Exception:


SqlConnection con = new SqlConnection(builder.ConnectionString);
            con.Open();
            string query = "select * from [master].[dbo].[sysdatabases]";
            SqlCommand cmd = new SqlCommand(query, con);
            SqlDataReader reader = cmd.ExecuteReader();
            
            MessageBox.Show(reader[0].ToString());
            con.Close();

genauer gesagt beim ansprechen des SQLDataReader Objektes an einer bestimmten stelle.

Die Exception ist folgende:
Eine nicht behandelte Ausnahme des Typs "System.InvalidOperationException" ist in System.Data.dll aufgetreten.

Zusätzliche Informationen: Ungültiger Leseversuch, wenn keine Daten vorhanden sind.

Bei diesem Befehl sollte er mir wenigstens master, tempdb, model und msdb anzeigen...

Hat jemand eine Ahnung?

danke, mfg

3.825 Beiträge seit 2006
vor 15 Jahren

Dieser Fehler kommt "wenn keine Daten vorhanden sind."

Du willst einen DataReader abfragen, obwohl keine Daten gelesen werden konnten.

Das kann verschiedene Ursachen haben. Wie ist denn Dein Connectionstring ? Mit welchem Datenbank-User machst Du die Abfragen ?

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

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

Der Connectionstring sieht so aus:

Data Source = LAPDATACENTER;IntegratedSecurity = True; User ID = FIRMENDOMAIN\benutzername

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

Hab den Fehler gefunden. Hatte nie was mit dem Connection String zu tun...


while (sqlreader.Read())
            {
                MessageBox.Show(sqlreader[0]+"");
            }

damit der reader daten beinhaltet werden, muss reader.Read() aufgerufen werden