Как удалить строку из GridView?

Хорошо, прежде всего, вы должны знать, что функция input () возвращает строку , и, таким образом, ваше первое условие: if login_orsignup1 != 1 всегда будет истинным, поскольку строковый объект [112 ] не равен объекту int 1. Что касается того, почему вас снова спрашивают о пользователе после того, как у него есть надежный пароль, то это потому, что оператор break только прерывает текущий цикл. Таким образом, вы только прерываете этот цикл, чтобы вернуться в начало цикла проверки имени пользователя. Я бы предложил более чистую реализацию, например, так:

    # login or sign-up loop
    while True: 
        login_orsignup1 = input(" Press \n1) to Log in \n2) to register a new account")
        # you can have the input result in a variable like so, if you want to use it later on
        if login_orsignup1 == "1": # you said '1' was for login, right?
            # or you can test this directly in your if statement 
            # if it is only needed for this condition
            while input("What is your username: ") != username: 
                print("Incorrect username")

            # same thing for password, but could be implemented another way if you 
            # don't want to loop until the user gets the correct password
            while input("What is your password: ") != input_lockerpassword:
                print("Incorrect password for this username")

            # your code gets here only if the user entered the right credentials
            # so you can now break of the login or sign-up loop
            break
        elif login_orsignup1 == "2":
            # code for registration here

Это может быть достаточно для простой вещи. Я бы порекомендовал проектировать эту консольную программу, следуя принципам конечного автомата и добавляя больше кода на каждом шаге для обработки таких случаев, как возврат на один шаг назад или в начале.

Надеюсь, это поможет

10
задан Abhishek 6 July 2017 в 06:41
поделиться

4 ответа

Вы удаляете строку из gridview, но Вы затем идете и называете привязку данных снова, которая просто обновляет gridview к тому же состоянию, в котором находится первоначальный источник данных.

Или удалите его из источника данных и затем свяжите с данными, или свяжите с данными и удалите его из gridview без перепривязки данных.

18
ответ дан 3 December 2019 в 14:06
поделиться

Вы удаляете строку из gridview и затем снова переплетаете его к источнику данных (который все еще содержит строку). Или удалите строку из источника данных или не снова переплетайте gridview впоследствии.

12
ответ дан 3 December 2019 в 14:06
поделиться

Ответ по умолчанию должен удалить объект из любого набора, который Вы используете в качестве DataSource GridView.

Если та опция является нежелательным затем, я рекомендую использовать GridView RowDataBound событие для выборочной установки строки (e.Row) Visible свойство ко лжи.

4
ответ дан 3 December 2019 в 14:06
поделиться

Удалите строку из таблицы dtPrf_Mstr, а не из представления сетки.

0
ответ дан 3 December 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: