Как получить имена базы данных из заданного сервера Sql в LINQ

У меня DropDownList отображает весь сервер, присутствующий в моей сети. Я хочу заполнить имена баз данных, когда я изменил его в другое раскрывающееся меню. Я хочу, чтобы запрос LINQ получил это.

    См. Здесь вопрос о том, как получить список баз данных, доступных для входа во вход пользователя:

    SELECT name FROM sys.sysdatabases WHERE HAS_DBACCESS(name) = 1 

    Реализация этого в LINQ требует публикации представления sysdatabases в вашем собственном представлении. Я бы рекомендовал создать представление для задания в одной из баз данных:

     CREATE VIEW [dbo].[vewDatabases] AS SELECT name FROM sys.sysdatabases WHERE HAS_DBACCESS(name) = 1 GO 

    Добавьте это в свою модель данных LINQ, и вы сможете выбрать ее таким образом [c #]:

     var databaseNames = serverDataContext.vewDatabases.Select(a => a.name); 

    Затем вы можете заполнить DropDownList содержимым имени базы данных.

    Я не думаю, что это работа для Linq2SQL (хотя я не слишком знаком с ней).

    В принципе, я думаю, вы можете получить нужные результаты, посмотрев одну из таблиц SYS_ или хранимую процедуру SP_. Не могу вспомнить, что было – было некоторое время, так как я что-то делал с SQL Server.

    Попробуйте код ниже:

      protected void ddList_SelectedIndexChanged(object sender, EventArgs e) { PopulateDatabaseDropDown(ddList.SelectedItem.Text); } private void PopulateDatabaseDropDown(string server) { ddDatabase.DataSource = DatabaseName(server); ddDatabase.DataValueField = "DatabaseId"; ddDatabase.DataTextField = "Name"; ddDatabase.DataBind(); } private DataBase[] DatabaseName(string serverName) { List<DataBase> data = new List<DataBase>(); System.Data.Linq.DataContext db = new System.Data.Linq.DataContext("Data Source="+serverName+";Initial Catalog=master;Integrated Security=SSPI"); var dbName = db.ExecuteQuery<DataBase>("select database_id, [name] from sys.databases").AsEnumerable(); foreach (var item in dbName) data.Add(new DataBase() { DatabaseId = item.DatabaseId, Name = item.Name }); return data.ToArray(); } } public class DataBase { public string Name { get; set; } public int DatabaseId { get; set; } } 
    Interesting Posts

    Могу ли я выполнить запрос T-SQL для определения максимального размера данных для экземпляра SQL Server Express?

    SQL SERVER рассчитывается с использованием смещения

    Добавить столбец для просмотра

    Каков наименьший тип данных для хранения целочисленного значения в SQL Server 2008?

    Как удалить первый символ, если он является конкретным символом в SQL

    Отключить триггер зависает?

    Как получить и сравнить два атрибута XML с помощью TSQL, где строка XML хранится в поле?

    Ссылка на суррогатный ключ

    Как решить ошибку TFS TF246021 и ошибку SQL Server 500200 при проверке?

    не может выполнить следующий sql-запрос из-за разрешения

    Как лучше всего получить данные пользователя из Active Directory в сочетании с данными SQL Server

    Анализ зависящего от времени журнала событий из SQL

    sql-запрос для значения NULL, превышающего параметр

    идентификатор объема в хранимой процедуре

    Удалить все функции из базы данных

    Давайте будем гением компьютера.