Подключение к SQL

Очередной интересный топик на сайте www.gotdotnet.ru

файл http://www.gotdotnet.ru/files/6101/
Автор .

Это окно  подключения к SQL серверу. Написан очень хорошо, но есть пару деталей которые НУЖНО добавить в код. (в принципе в любую программу всегда есть что добавить и надеемся что автор не обидится на эти слова)

Окно выглядит так:
Окно программы для подключения к SQL

Первое что исправим это список серверов. Список создается так:

  Dim ds = SqlDataSourceEnumerator.Instance.GetDataSources()
 


а в комбобокс выводится:

cbxServer.DisplayMember = "ServerName"

а нужно выводить не просто имя сервера, а имя\имя экземпляря. Сделаем это так:

Dim ds = SqlDataSourceEnumerator.Instance.GetDataSources()
        ds.Columns.Add("ServerNameAndInstanceName", GetType(System.String))

        Dim dr As DataRow
        For Each dr In ds.Rows
            dr("ServerNameAndInstanceName") = dr("ServerName")
            If Not IsDBNull(dr("InstanceName")) Then
                dr("ServerNameAndInstanceName") &= "\" & dr("InstanceName")
            End If
        Next


Теперь о втором, в программе список серверов формируется в новом потоке (это классно), и после того как список формирован его нужно отдать на съедение комбобоксу. Комбобок у нас в потоке формы, значит достучатся к нему можно только через Invoke. Все работает,но ошибка появляется когда мы открываем форму и тут же его закрываем, получаем это:
Подключение к SQL ошибка

заменим этот код на :

 If Me.InvokeRequired Then
            Me.Invoke(New WaitCallback(AddressOf SetUp), ds)
 End If

теперь все работает

Скачать код

Добавить комментарий

Loading