powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Server list
6 сообщений из 6, страница 1 из 1
Server list
    #38610754
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пример кода для получения списка sql серверов.

Мой код которым я пытался решить проблему не работает (ни ошибок ни результата)

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
public enum NERR
        {
            NERR_Success = 0,
            ERROR_ACCES_DENIED = 5,
            ERROR_NOT_ENOUGH_MEMORY = 8,
            ERROR_MORE_DATA = 234,
            ERROR_BAD_NET_PATH = 53,
            ERROR_NO_NETWORK = 1222,
            ERROR_NO_BROWSER_SERVER_FOUND = 6118
        }

        public enum PLATFORM_ID : uint
        {
            PLATFORM_ID_DOS = 300,
            PLATFORM_ID_OS2 = 400,
            PLATFORM_ID_NT = 500,
            PLATFORM_ID_OSF = 600,
            PLATFORM_ID_WMS = 700
        }

        [DllImport("netapi32.dll", EntryPoint = "NetServerEnum")]
        public static extern NERR NetServerEnum(
            [MarshalAs(UnmanagedType.LPWStr)] string ServerName, int Level, out IntPtr BufPtr,
            int PrefMaxLen, ref int EntriesRead, ref int TotalEntries, uint ServetType,
            [MarshalAs(UnmanagedType.LPWStr)] string Domain, int ResumeHandle);

        [DllImport("netapi32.dll", EntryPoint = "NetApiBufferFree")]
        public static extern NERR NetApiBufferFree(IntPtr Buffer);

        const uint SV_TYPE_SQLSERVER = 0x00000004;

        [StructLayout(LayoutKind.Sequential)]
        public struct SERVER_INFO_101
        {
            [MarshalAs(UnmanagedType.U4)]
            public uint sv101_platform_id;

            [MarshalAs(UnmanagedType.LPWStr)]
            public string sc101_name;

            [MarshalAs(UnmanagedType.U4)]
            public uint sc101_version_major;

            [MarshalAs(UnmanagedType.U4)]
            public uint sv101_type;

            [MarshalAs(UnmanagedType.LPWStr)]
            public string sv101_comment;
        }

        public static List<string> GetSQLServerList()
        {
            SERVER_INFO_101 si;
            IntPtr pInfo = IntPtr.Zero;
            int entriesread = 0;
            int totalentries = 0;
            List<string> srvs = new List<string>();

            try
            {
                NERR err = NetServerEnum(null, 101, out pInfo, -1, ref entriesread,
                    ref totalentries, SV_TYPE_SQLSERVER, null, 0);

                if ((err == NERR.NERR_Success || err == NERR.ERROR_MORE_DATA) && pInfo != IntPtr.Zero)
                {
                    int ptr = pInfo.ToInt32();

                    for (int i = 0; i < entriesread; i++)
                    {
                        si = (SERVER_INFO_101)Marshal.PtrToStructure(new IntPtr(ptr), typeof(SERVER_INFO_101));
                        srvs.Add(si.sc101_name);
                        ptr += Marshal.SizeOf(si);
                    }
                }
            }
            catch { }
            finally
            {
                if (pInfo != IntPtr.Zero)
                    NetApiBufferFree(pInfo);
            }
            return srvs;
        }

        private void bRegresh_Click(object sender, EventArgs e)
        {
            cbSrv.DataSource = GetSQLServerList();
        }
    }



У кого есть работающий код или ссылка на пример?

Спасибо.
...
Рейтинг: 0 / 0
Server list
    #38610784
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Smo используйте
...
Рейтинг: 0 / 0
Server list
    #38610790
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIT2708,

Хотел добавить,
этот вариант также не работает

Код: c#
1.
DataTable srv = SqlDataSourceEnumerator.Instance.GetDataSources();



Но сервера есть Visual Studio 2010 Server Explorer их видит!!!!!
...
Рейтинг: 0 / 0
Server list
    #38610798
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79 Smo используйте

Для 2005 сервера не подходит
...
Рейтинг: 0 / 0
Server list
    #38610806
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIT2708Для 2005 сервера не подходит

Управляющие объекты SQL Server (SMO) представляют собой модель объектов управляемого кода, которая была введена в SQL Server 2005
...
Рейтинг: 0 / 0
Server list
    #38610817
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79VIT2708Для 2005 сервера не подходит

Управляющие объекты SQL Server (SMO) представляют собой модель объектов управляемого кода, которая была введена в SQL Server 2005


спасибо, буду пробовать
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Server list
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]