none
Проверка занчения текстового поля при вводе RRS feed

  • Вопрос

  • Добрый день!

    Так как я новичок в программировании прошу помочь решить задачу, сам пока не могу сообразить.

    Есть форма (winForm) с несколькими textbox, текст из них передается в свойства моего объекта и мне нужно чтобы если поле не заполнили это свойство не назначалось иначе пустые параметры не принимаются и в итоге программа не работает

    public string CheckField(string Field)
                {
                    if (Field != null)
                    {
                        return Field;
                    }
                    else
                    {
                        return null;
                    }
                }
    
    public string CreateUserAccount()
            {
    
                try
                {
                    string oGUID = string.Empty;
                    string connectionPrefix = "LDAP://" + ldapPath;
                    DirectoryEntry dirEntry = new DirectoryEntry(connectionPrefix);
                    DirectoryEntry newUser = dirEntry.Children.Add("CN=" + LoginField.Text, "user");
                    newUser.Properties["samAccountName"].Value = CheckField(LoginField.Text);
                    newUser.Properties["sn"].Value = CheckField(NameField.Text);
                    newUser.Properties["givenname"].Value = CheckField(SurnameField.Text);
                    newUser.Properties["displayname"].Value = SurnameField.Text + " " + NameField.Text + " " + MiddleNameField.Text;
                    newUser.Properties["department"].Value = null;
                    newUser.CommitChanges();
                    oGUID = newUser.Guid.ToString();
                    newUser.Invoke("SetPassword", new object[] { password });
                    newUser.Properties["userAccountControl"].Value = 512;
                    newUser.CommitChanges();
                    newUser.Properties["pwdLastSet"].Value = 0;
                    newUser.CommitChanges();
                    dirEntry.Close();
                    newUser.Close();
                    string output = "Пользователь " + displayName + " c логином " + samAccountName + " создан \r\nGUID: " + oGUID + "\r\n";
                    return output;
                }
                catch (System.DirectoryServices.DirectoryServicesCOMException E)
                {
                    //DoSomethingwith --> E.Message.ToString();
                    return E.Message;
                }
    
    
            


    20 ноября 2014 г. 13:20

Все ответы

  • if(!string.IsNullOrEmpty(NameField.Text))
    {
       newUser.Properties["sn"].Value = NameField.Text;
    }

    • Предложено в качестве ответа YatajgaModerator 21 ноября 2014 г. 6:33
    • Отменено предложение в качестве ответа Sergey Aslanov 24 ноября 2014 г. 10:01
    20 ноября 2014 г. 16:32
  • Согласен, но мне еще нужно проделать это со всем массивом TextBox объектов из формы, и при указании свойства (Properties[""]) внести имя соответсвующего TextBox, а значение (Value ="") возьму из TextBox.Text. Т.е. получается нужно ставить в текст сроку с имением объекта.
    24 ноября 2014 г. 10:01
  • Не совсем понял, поэтому уточню - у Вас ключ (к примеру ""samAccountName"), является именем TextBox ?

    Тогда заведите массив этих текстбоксов и в цикле пробежитесь по нему, так даже кода меньше будет.

    У текстбокса, помимо свойства Text, есть еще Name, которое Вы можете так и же использовать.

    24 ноября 2014 г. 11:08
  • Да, так и есть
    24 ноября 2014 г. 12:35
  • Так вопрос исчерпан или нет?
    24 ноября 2014 г. 13:11