DataTable servers = SqlDataSourceEnumerator.Instance.GetDataSources();
foreach(DataRow sv in servers.Rows)
{
lviServerliste.Items.Add(sv[0].ToString());
}
Leider wird die Instance nicht mit angezeigt, entgegen der Doku.
In codeproject gibt es eine Serverliste auf Protokollebene, die auch die Instanzen anzeigt.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Hi,
zu 2.:
Du müsstes zu jedem server eine SqlConnection aufbauen.
Und dann einfach:
DataTable dtDBs = sqlConn.GetSchema("Databases");
Hab jetzt nicht die Struktur der erhaltenen DataTable im Kopf, aber dort stehen auf alle fälle die Datenbanken des gerade verbundenen Servers drin.
Grüße,
Kani
DataTable dtDBs = sqlConn.GetSchema("Databases");
bei dem hats mir immer ein "invalid operatioon" raus.. warum??
edit: hat sich erledigt mit dem fehler aber:
ich bekomm nur metadaten und nicht die namen der verfügbaren datenbanken um sie dann in ein connectionstring zu packen um anschließend damit arbeiten zu können
verstehe ich jetzt nicht... datenbanknamen sind doch metadaten...
also ich bekomme sie so heraus:
DataTable dtDatabases = sqlConn.GetSchema("Databases");
for(int i=0; i<dtDatabases.Rows.Count; i++)
{
Console.WriteLine(dtDatabases.Rows[i]["database_name"]);
}
Grüße,
Kani
Und hat jetzt jemand ne Lösung wie man die Instanzen sehen kann ?
Ich seh nur "Workstation1" statt "Workstation1\SQLEXPRESS". Die Instanz brauche ich ja auch um den Connectionstring zusammenzubauen.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
DataTable servers = SqlDataSourceEnumerator.Instance.GetDataSources();
foreach (DataRow sv in servers.Rows)
{
this.dropdown.Items.Add(sv[0].ToString() + "\\" + sv[1].ToString());
}
dieser string der da rauskommt ist komplett so wie er ist als "data source" zu verwenden beim connectionstring
Das Problem ist aber das du unter Umständen den Instanznamen vom SqlDataSourceEnumerator gar nicht bekommen wirst, wie in meinem link beschrieben.
[Edit]
So ich hab jetzt noch einmal bisschen gesucht. Am besten ihr verwendet SQLDMO wie z.B. in diesem Artikel schön beschrieben.
Gruß,
Tom