2010-08-10 3 views

ответ

2

Вот код (вы можете проверить детали здесь: http://dataconnectionsuite.codeplex.com/SourceControl/changeset/view/57274#1206522)

 try 
     { 
      this.databasesComboBox.Items.Clear(); 
      this.databasesComboBox.Items.Add("Please wait while loading available databases..."); 
      DataTable tables = new DataTable("Tables"); 
      using (IDbConnection connection = this.GetConnection()) 
      { 
       IDbCommand command = connection.CreateCommand(); 
       command.CommandText = "SELECT * FROM sys.Databases"; 
       connection.Open(); 
       tables.Load(command.ExecuteReader(CommandBehavior.CloseConnection)); 
      } 
      this.databasesComboBox.Items.Clear(); 
      foreach (DataRow row in tables.Rows) 
       this.databasesComboBox.Items.Add(row[0].ToString()); 
     } 
     catch (SqlException) 
     { 
      this.databasesComboBox.Items.Clear(); 
      this.databasesComboBox.Items.Add("Connection error. Check server & credentials"); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Error while loading available databases: " + ex.ToString()); 
     } 
     finally 
     { 
      DatabaseListCreating = false; 
     } 
+0

спасибо ... она решена. – Farna

+0

Добро пожаловать – 2010-08-10 08:24:10

4

Следующая команда SQL предоставит вам все имена баз данных на сервере, где она выполнена. Чтобы увидеть дополнительную информацию, измените name на *.

SELECT name 
    FROM sys.databases 
2

Самая платформо-независимый способ будет запрашивать information_schema. SQL Server также предлагает ряд системных таблиц/представлений, которые могут использоваться для той же цели; они предлагают дополнительную информацию (особенно специфическую для SQL Server), но они не переносимы, даже в разных версиях SQL Server.

Смежные вопросы