Vipin Sharma Ответов: 2

Получить имя экземпляра sql-сервера


я создаю приложение в vb2010 и использую sql-server2005 в качестве бэкенда.
я хочу установить его на чужой компьютер . для этой строки подключения это проблема потому что я должен ее изменить


я уже создал установку, но она не будет работать .

моя строка подключения такова :
Public sqlc As New SqlClient.SqlConnection("Data Source=LOCALHOST\SQLEXPRESS;Initial Catalog=test;Integrated Security=True;multipleactiveresultsets = true")


Итак, теперь я хочу создать форму startuo, где я получу все имя экземпляра sql-server2005. так что я могу переписать его с помощью Source=LOCALHOST\SQLEXPRESS;

но я не знаю, как это сделать ?

plz кто-нибудь может мне помочь , любой тип ex. sampal кода или проекта ?
любой sugetions ? пожалуйста, помогите . заранее спасибо...........

cocis48

Создайте новую форму с полем со списком в ней, и код здесь находится в VB .NET, чтобы прочитать имена серверов, которые разрешили/выставили свое имя для публикации, SQLBrowser должен быть запущен на вашем компьютере, чтобы прочитать имена, выставленные, предполагая, что ваше имя поля со списком является cmbServers, вам нужно импортировать это имя.:
Импортирует Файл Microsoft.SqlServer.Management.Общая и, возможно, другая ссылка, она сообщит вам, когда вы скопируете код. Имейте в виду, что если вы не видите всех, это означает, что те, кого вы не видите, не раскрывают свои имена, вы вызываете метод ниже:

2 Ответов

Рейтинг:
19

cocis48

Private Sub GetServerList()

Dim Server As String = Строка.Пустой
Тусклый экземпляр как SqlDataSourceEnumerator = SqlDataSourceEnumerator.Пример
Таблица Dim как System.Data.DataTable = экземпляр.GetDataSources()

Для каждой строки в виде System.Data.DataRow в table.Rows
Сервер = Строка.Пустой
Сервер = строка("Имя_сервера")
Если ряд("перезагрузки").Метод toString.Длина > 0 затем
Сервер = сервер &ампер; "\" &амп; строка("Имя_экземпляра")
Конец, Если
cmbServers.Предметы.Добавить(Сервер)
Следующий

cmbServers.Свойства selectedIndex = cmbServers.FindStringExact(Окружающая Среда.свойство machineName)


Конец Подводной Лодки


Vipin Sharma

спасибо, я попробую это сделать. но у меня есть que. это работает, когда я не запускаю sql-сервер ? то есть я устанавливаю bt, а не запускаю его, когда запускаю свое приложение.
потому что это приложение, поэтому необходимо подключиться к БД без запуска sql .

Vipin Sharma

Тусклый экземпляр как SqlDataSourceEnumerator = SqlDataSourceEnumerator.Пример

vb выдает ошибку для экземпляра Dim как SqlDataSourceEnumerator . Почему? какой рефранс я должен использовать ?
или импорт ?

cocis48

Вы должны установить по крайней мере SqlExpress на локальном компьютере, чтобы найти другие экземпляры SQL server, нажмите на слово, и маленькое красное подчеркивание сообщит вам, какой импорт вам не хватает. Таковы ссылки, которые вам нужны, и они находятся в этой папке для SQL 2008, C:\Program файлы\\корпорация Майкрософт SQL сервер 100\\SDK для сборки.
1-Micosoft.SqlServer.ConnectionInfo
2-Micosoft.SqlServer.ConnectionInfoExtended
3-Micosoft.SqlServer.Smo
4-Micosoft.SqlServer.SmoExtended
5-Micosoft.SqlServer.SqlEnum
попробуйте по очереди, для того, что вы хотите, вам могут не понадобиться все они, но сначала вы должны установить Sql express и SDK, где находятся эти dll-файлы.
с уважением.

Vipin Sharma

большое спасибо... это работает, и я так счастлива за это...
спасибо за помощь мне :)
все, что мне нужно, это просто добавить refrance Imports System.Data.Sql
это действительно очень помогло мне . спасибо....

cocis48

Добро пожаловать!

sushant.khot31

Здравствуйте сэр,
я делаю все кодовые включения, но когда я запускаю эту программу с отладкой, указатель времени идет от прямого "для каждой строки как System.Data.DataRow в таблице.Строки" --> " cmbServerNames.Свойства selectedIndex = cmbServerNames.FindStringExact(Окружающая Среда.свойство machineName)"
Итак, отображается ans: "-1" ????
что же делать?

Рейтинг:
1

Member 13843821

Частная Субформа Form1_Load(отправитель как система.Объект, как система.EventArgs) Обрабатывает MyBase.Load
Попробуй
cmbserver.Предметы.Добавить(My.Computer.Name.ToString & "\SQLExpress")
cmbserver.Items.Add("Localhost\SQLExpress")
Поймать ex как исключение
Ящик для сообщений.Выставка(экс.Сообщение, "Сообщение", MessageBoxButtons.Хорошо, MessageBoxIcon.Ошибка)
Конец Попытки
Конец Подводной Лодки

Private Sub GetServerList()

        Dim Server As String = String.Empty
        Dim instance As SqlDataSourceEnumerator = SqlDataSourceEnumerator.Instance
        Dim table As System.Data.DataTable = instance.GetDataSources()

        For Each row As System.Data.DataRow In table.Rows
            Server = String.Empty
            Server = row("ServerName")
            If row("InstanceName").ToString.Length > 0 Then
                Server = Server & "\" & row("InstanceName")
            End If
            cmbserver.Items.Add(Server)
        Next

        cmbserver.SelectedIndex = cmbserver.FindStringExact(Environment.MachineName)


    End Sub


Maciej Los

Зачем публиковать "решение" уже ответившего вопроса?