WMI: не могу установить значение моего текстового поля в массив ManagementBaseObject

avatar
Dev George
8 апреля 2018 в 07:13
47
0
0

Добрый день.

У меня проблема с объявлением нового строкового значения со значением, полученным из textbox1.text, а значение текстового поля равно 192.168.1.5. это код, который не работает.

newIP["SubnetMask"] = new String[] { textBox1.Text }; 

Теперь у меня есть образец строки, который я объявил

string sampleip = "192.168.1.5";
newIP["SubnetMask"] = new String[] { sampleip  };

этот код работает.

но вот вопрос.

как нормально работает код, если коды будут такими

newIP["SubnetMask"] = new String[] { textBox1.Text };

я покажу вам весь код.

// this code for ip and subnet
ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection objMOC = objMC.GetInstances();

foreach (ManagementObject objMO in objMOC)
{
    if ((bool)objMO["IPEnabled"])
    {
        try
        {
            ManagementBaseObject setIP;
            ManagementBaseObject newIP =
                objMO.GetMethodParameters("EnableStatic");

            string sampleip = "192.168.1.5";

            **newIP["SubnetMask"] = new String[] { textBox1.Text };**
            newIP["IPAddress"] = new String[] { textBox2.Text };

            setIP = objMO.InvokeMethod("EnableStatic", newIP, null);

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }


    }
}

это значение в моем textbox1.text у меня есть образец изображения здесь пример вывода

спасибо, ребята.

Источник
Jeroen Heier
8 апреля 2018 в 07:19
0

Вы уверены, что ввод имеет допустимое значение? Отладьте свой код и проверьте значение непосредственно перед выполнением этой строки.

Dev George
8 апреля 2018 в 07:22
0

ввод был правильным.. и я постараюсь показать его в окне сообщений..

Dev George
8 апреля 2018 в 07:25
0

я редактирую свой вопрос .. их вы можете увидеть значение моего текстового поля, сэр @JeroenHeier

Dev George
8 апреля 2018 в 07:37
0

я пытаюсь использовать эту строку sampleip = textBox1.Text; новый IP["Маска подсети"] = новая строка[] {образец IP}; но все равно не работает..

Jimi
8 апреля 2018 в 09:21
0

Вы проверили возвращаемое значение метода «EnableStatic»? Который имеет тип HResult. Он подскажет, если что-то пошло не так. Кроме того, поскольку вы отключаете DHCP, вы также должны установить адрес шлюза и хотя бы один адрес DNS. См. спецификации вызова метода метод EnableStatic

Dev George
8 апреля 2018 в 10:49
0

@Джими, это работает, если значение получено из моей базы данных? и вставьте его в новую строку [] {sampleip} ???

Dev George
8 апреля 2018 в 10:58
0

@ Джими Джими. если я установлю значение текстового поля, это статическая строка. образец. строка х = "192.168.1.5"; затем textbox1.text = x; затем попробуйте вставить его в новую строку [] {textbox1.text}, которая работает нормально.. как бы то ни было. если я получаю значение в базе данных. никаких изменений не происходит

Jimi
8 апреля 2018 в 11:28
0

Какая база данных? Вы имеете в виду, что вы установили значение, но читая его, вы не видите изменений? Вы читали, что я написал в первом комментарии: Проверили ли вы возвращаемое значение метода "EnableStatic"? Который имеет тип HResult.. Вы должны прочитать возвращаемое значение и сопоставить его с возможными значениями, которые может вернуть метод. Одним из них является "Успешное завершение, требуется перезагрузка" (=1).

Dev George
8 апреля 2018 в 11:45
0

процесс, который я делаю. я выбираю данные ip, подсети, шлюза в базе данных. затем после того, как я выберу его, ip, подсеть, шлюз будут установлены в textbox1, textbox2, textbox3. после того как я его поставил. я помещаю данные в newIP["SubnetMask"] = new String[] { textBox1.Text };** newIP["IPAddress"] = new String[] { textBox2.Text };

Ответы (0)