Ваш вопрос является точной копией вашего предыдущего поста, который был закрыт. Это большой красный флаг для вас - вы должны понять, почему это произошло. SO довольно любезен, и закрытый вопрос означает, что сообщество думает, что вы можете добиться большего.
Итак, начнем. Во-первых, не используйте addwithvalue . Просто не надо. Чтобы быть вместе с этим, не будьте ленивым разработчиком - что-то поощряемое методами / функциями, такими как addwithvalue.
Далее у вас есть это:
SqlCommand createCommand = new SqlCommand(query, sqlCon);
createCommand.Parameters.Clear();
Почему? Вы создаете новый объект SqlCommand. Зачем вам нужно очистить параметры? Начните думать о своем коде и перестаньте слепо писать операторы, если вы не понимаете, что они делают. Если вы найдете код, который вы используете повторно, УЧИТЕ, что он делает, адаптируйте его к вашим собственным целям.
Далее мы видим, что вы получаете те же вопросы, на которые вы не ответили в предыдущей ветке. Ваше приложение должно «запомнить» данные пользователя, который входит в систему. И учтите, что способ входа пользователя в систему будет отличаться между существующим пользователем и новым пользователем. У вас есть 2 различных пути к коду, но в конечном итоге они должны делать одно и то же - предоставлять доступ пользователю и устанавливать информацию в вашем приложении, которая позволяет ему функционировать для того, кто вошел в систему.
Кроме того, никто, читающий ваш вопрос, не знает ваш уровень квалификации, ваши цели, вашу среду разработки или вашу рабочую ситуацию. Студент, изучающий первый язык, нуждается в ином уровне руководства, чем тот, у кого значительный опыт. Члену команды разработчиков необходим другой уровень (и он должен спрашивать членов команды перед публикацией). Если вы не предоставите никаких подсказок (или сообщите нам об этом явно), предложения и комментарии могут не иметь особого смысла. Они также могут показаться снисходительными. Публиковать вопросы на публичном форуме не так просто, как можно подумать. Научитесь задавать умные вопросы , которые побуждают других помогать.
Итак, какую «информацию» требуется вашему приложению после успешного входа в систему? Вы говорите нам. Я предполагаю, что для этого нужна некоторая (возможно, вся) информация, связанная с логикой регистрации. Вам также может понадобиться первичный ключ для этой строки в таблице. Что такое первичный ключ и как его получить? Вы говорите нам. Я предполагаю, что фактические значения первичного ключа пользователя будут необходимы в других частях вашего приложения. Исходя из кода входа в систему, имя пользователя представляется естественным ключом (который, я надеюсь, принудительно применяется с соответствующими ограничениями), но фактический первичный ключ может представлять собой другой столбец (столбцы).
Теперь вы можете подумать, что вы можете просто сохранить имя пользователя в каком-то месте после успешного входа в систему и просто получать его везде, где вам это нужно. Вы можете - но это очень неэффективный подход к разработке приложений. Зачем? Думаю об этом. Вы можете попробовать этот подход, но это не меняет необходимости запоминать минимальный набор регистрационной информации.
Итак, вернемся к предыдущему комментарию о двух путях кода. Ваша логика "существующего пользователя" просто проверяет, что имя пользователя / пароль существуют в строке в вашей таблице. Я буду игнорировать проблемы с хранением паролей в виде простого текста - вы не должны. И вы должны тщательно продумать, какая информация необходима для успешного входа в систему на основе естественного ключа таблицы. Имена часто не уникальны в школе, тем более между школами. Опять же - как опыт обучения эта конкретная деталь не слишком важна. Как код, который будет реализован в производственной системе, это очень важно.
Когда пользователь завершает логику новой учетной записи, ваше приложение имеет всю (или, по крайней мере, подавляющее большинство) информацию, связанную с пользователем. Ваша логика входа должна делать то же самое. Определите, какая информация о пользователе нужна вашему приложению, найдите способ «запомнить» эту информацию в своем приложении, а затем добавьте код к этим путям, чтобы получить / сохранить ее. Возможно, вам придется рассмотреть и противоположную логику - предоставить способ очистить эту информацию и вернуть ваше приложение в то же состояние, в котором оно было при первом запуске.