Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - Verbindungprüfen mittels C#


Vegeto - Fr 28.06.13 14:54
Titel: Verbindungprüfen mittels C#
Hallo liebes Forum,

ich habe kein Problem oder ähnliches, habe nur enige Fragen zu Sql und C#.

Also ich kann ja mittels SqlConnection auf ein SqlServer zugreifen, kann dann Tabellen einfügen,löschen etc.
Jetzt wollte ich mal fragen ob es irgend eine Möglichkeit gibt, Zustände(vorhanden, oder nicht vorhanden) in der Datenbank auf der Gui anzuzeigen?

Geben ist eine Gui mit 2 Textboxen, in der einen textbox kommt der Servername rein(Data Source) in die andere textbox kommt die Tabelle(Initial Catalog) rein!
Connectionstring würde so aussehen:

C#-Quelltext
1:
2:
"Data Source=" + txtDatasource.Text + ";Initial Catalog=" + txtInitial.Text +
";Connect Timeout = 30;Trusted_Connection = yes";


Hier kommen jetzt meine fragen:
Wie kann ich jetzt überprüfen ob es diese Data Source gibt?
Wie kann ich überprüfen das die Tabelle in der Data Source vorhanden ist?
Gibt es ein Connection String mit der ich nur auf eine DATA SOURCE und nicht direkt auf eine Tabelle verbinde?

C#-Quelltext
1:
"Data Source=" + txtDatasource.Text + ";                    
Initial Catalog=" + txtInitial.Text + ";Connect Timeout = 30;Trusted_Connection = yes"; <-- ohne den unterstrichenen teil!

Ich hoffe ihr versteht meine Fragen, ich muss ehrlich zugeben, es ist mir schwer gefallen die Fragen zu formulieren :/

Lg

Moderiert von user profile iconTh69: Beitragsformatierung überarbeitet.
Moderiert von user profile iconTh69: U- durch C#-Tags ersetzt


Ralf Jansen - Fr 28.06.13 15:50

Initial Catalog ist eine Datenbank keine Tabelle.

Um zu prüfen ob es eine bestimmte Datenbank gibt und ob man sich dahin verbinden kann sollte man sich am besten einfach dahin verbinden. Es gibt keinen besseren Test ;)

Nur weil es etwas gibt heißt ja noch lange nicht das man auch die passenden Rechte hast das auch zu benutzen. Genauso wie du nicht daraus schließen kannst das
weil du etwas aus der Datenbank lesen darfst das du da auch reinschreiben darfst. Alles vorweg zu prüfen ist meiner Meinung nach unfug. Server vorhanden, DB Server Instanz vorhanden, Db Server läuft, Datenbank auf dem DB Server existiert, ich habe die passenden Rechte und wenn du dann endlich soweit bist das du die Abfrage machen kannst die du eigentlich vorhast kann sich das ganze schon wieder geändert haben. Ein vollständiges Errorhandling mußt du dann also eh an der Stelle machen.

Zitat:
Gibt es ein Connection String mit der ich nur auf eine DATA SOURCE und nicht direkt auf eine Tabelle verbinde?


Initial Catalog ist wie gesagt eine Datenbank keine Tabelle. Und wenn du keine Datenbank angibst wirst du glaube ich in der Masterdatenbank landen.


Vegeto - Mi 03.07.13 13:40

Danke schön Ralf Jansen

Du hast Recht Initial Catalog ist die Datenbank habe bisschen unfug geschrieben :)

Habe auch noch etwas interessantes gefunden INFORMATION_SCHEMA so kann man überprüfen ob Tabellen in der Datenbank vorhanden sind :)

Naja ich bedanke mich, damit sind meine Fragen beantwortet

Lg