|
Программирование >> Автоматически обновляемые приложения
BSKLAD CAB DIRECTION DISPET03 DISPET1 ELECTRO F07-ADMIN F14 F14-ADtvJIN F22 F22-ADMIN F2G F26-ADMIN GLAVINGENER K0NF-ZAL2 SQLServer Bee компьютеры Контроллер AorvieHa florvieHbi Рис. 16.2. Список всех компьютеров в сети Список SQL-серверов при помощи управляемого кода в предыдущем примере, чтобы получить список SQL-серверов, мы использовали неуправляемый код. Но существует еще один альтернативный вариант с использованием встроенных классов .NET Framework (листинг 16.21). \ Листинг 16.21, Список SQL-cepBepoB в сети при помощи г управляемого кода using System.Data.Sql; using System; class Program { static void Main() { Получаем перечеслитель, a затем данные SqlDataSourceEnumerator instance = private static void DisplayData(System.Data.DataTable table) { foreach (System.Data.DataRow row in table.Rows) { foreach (System.Data.DataColumn col in table.Columns) { Console.WriteLine( {0} = (1} , col.ColumnName, row[col])< Console.WriteLine ( =========================== ) ; Этот пример консольного приложения описан в документации MSDN. Поэтому никогда не забывайте заглянуть в документацию в поисках решения своих проблем. Примечание Пример получения списка SQL-серверов находится в папке SQLEnum на прилагаемом диске. Как получить дату и время удаленного компьютера? Если вам необходимо получить дату и время на удаленном компьютере в сети, то воспользуйтесь вызовом функции Windows API NetRemoteTOD, как показано в листинге 16.22. SqlDataSourceEnumerator.Instance; System.Data.DataTable table = instance.GetDataSources(); Отображаем содержимое таблицы DisplayData(table); Console.WriteLine( Нажмите любую клавишу, чтобы продолжить ); Console.ReadKey(); Листинг 16.22. Получение даты и времени удаленного компьютера using System.Runtime.InteropServices; [Dlllmport( netapi32.dll , EntryPoint = NetRemoteTOD , SetLastError = true, CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] private static extern int NetRemoteTOD(string UncServerName, ref IntPtr BufferPtr); [Dlllmport( netapi32.dll , EntryPoint = NetApiBufferFree )] public static extern NERR NetApiBufferFree(IntPtr Buffer); [StructLayout(LayoutKind.Sequential)] private struct TIME 0F DAY INF0 {
список ошибок, возвраш;аемых NetServerEnum public enum NERR NERR Success =0, успех ERROR ACCESS DENIED = 5, ERR0R N0T EN0UGH MEM0RY = 8, ERROR BAD NETPATH =53, ERR0R NETW0RK BUSY =54, ERROR INVALID PARAMETER =87, ERROR INVALID LEVEL = 124, ERR0R M0RE DATA =234, ERROR EXTENDED ERROR = 1208,
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |