Изучение C# WPF на практике / Урок #6 - Регистрация в приложении
Вставка
- Опубліковано 30 чер 2024
- Настало время научиться работать с базой данных. За урок мы создадим функционал для регистрации пользователя внутри приложения.
✅ Полезные ссылки:
1) Урок на сайте itProger: itproger.com/course/csharp-wpf/6
⏰ Тайм-коды:
00:00 - Начало
00:37 - Объект контекста
01:57 - Добавление объекта в БД
04:35 - Тестирование программы
05:45 - Исправление ошибки
08:39 - Отображение записей из БД
12:45 - Тестирование и завершение
✔ Сообщество программистов: itproger.com/
✔ -------------
Вступай в группу Вк - prog_life 🚀
Группа FaceBook - goo.gl/XW0aaP
Инстаграм itProger: / itproger_official
Instagram: / gosha_dudar
Telegram: t.me/itProger_official
Twitter - / goshadudar
- Уроки от #GoshaDudar 👨🏼💻
- Все уроки по хештегу #goshaLessons
Круто, спасибо!
Поздравляю с 600к подписчиков!
Исправление ошибки предложенное автором не решило проблему на моем компьютере и ошибка осталась. В файле .config указал путь к db полностью
Спасибо тебе большое!!!. Очень помог
Отличный курс, можно отдельный ролик о динамическом создании элементов?
А код подключения к базе данных SQL Server Management Studio какой?
Алгоритмы и структуры данных бы отдельным курсом))
7:11 Вроде бы можно просто написать public string Email {private get; set;}
Отличные уроки! Спасибо большое! Класс! Гоша, а сколько всего будет уроков и когда все выйдут???
Если вы при запуске получаете ошибку CreateDatabase is not supported, значит вы забыли поставить на db в свойствах "Копировать" и entity пытается создать новую таблицу сам, где у него не получается ничего.
Привет! Давай что-то на Swift)
@Злая собака . Гааав-гав-гав Если ты не знал, есть люди которые знают Swift, и хотят видеть интересные видео по разработке на этом языке.
Гоша, все отлично! По твоему взгляд какой язык сейчас самый лучший и популярный для создания программа для Windows? Дай мне пожалуйста совет. Python PyQt5 надо учить или C# WPF ?
Учи C#. Я пробовал Qt, но это говно. Мало возможностей. WPF крутая штука.
Насколько я знаю, C#, C++, Java, Python - самые популярные. Еще есть и другие популярные, но эти больше всего. У каждого из них - свои плюсы и минусы) Но мне С# больше всего нравится)
если надо вторую базу данных добавить как это сделать
Всем ку. Я новичок в WPF . В ходе следования уроку столкнулся с ошибкой выполнения "EntityType 'User' has no key defined" при выполнении db.Users.Add
Решение:
в модуле "User" добавить "using System.ComponentModel.DataAnnotations;"
и ниже в классе добавить "[Key]"
куда именно добавить [key]?
и как добавить??
и правда, куда добавить Key? Можешь примерно хотябы сказать?
@@denisss8102 если вдруг еще интересно. "[Key]" нужно прописать перед каким либо свойством класса. Например, у меня в классе два свойство: для логина и пароля. И над строкой public Login нужно написать вот тот ключ
@@user-xt4rh3sv5k Спасибо вам и @user-hm7iw7wj3f , что решили мою проблему. После этого действительно всё заработало :)
Ошибка: System.Data.Entity.Infrastructure.DbUpdateException: 'An error occurred while updating the entries. See the inner exception for details.' Как ее решить? Подскажите пожалуйста, если получилось исправить.
Добавить имя таблицы и добавить идентификатор в модель через атрибут [TableName("tbname")]
[Key]
@@WeCoders можно по подробнее
@@user-mw8zo1dl1s Ну это аттрибут класса на сколько я понял...
7.36 У меня выдает ошибку, System.StackOverflowException: "Выдано исключение типа "System.StackOverflowException"."
строка Login
Кстати конструктор с 3-мя параметрами в классе модели не нужен. Все значения задаются с помощью конструкции инициализации. Ну кому-то мб так удобнее. не знаю...
System.Windows.Markup.XamlParseException вот эта ошибка выходит в файле ApplicationContext.cs
в строке public ApplicationContext() : base("DefaultConnection") {}
ЧО ДЕЛАТЬ ПОМОГИТЕ НЕ МОГУ ИСПРАВИТЬ
Да выкинь этот класс и другой и сделай по нормальному а не с такими извратами... там что-о не так конфиг файле. Не думаю что это легко будет разобраться... а главное это не нужно... не работает так сделай иначе как работает. Есть гарантированный способ работы... Это когда по стандарту делаешь. А не с извращениями.
Подскажите, а почему мы пишем AppContext именно вверху после class MainWindow, а выделяем память после Initilize COmponent?
почему нельяз прописать вдр месте?
А если нету файлов xaml ?
SQLiteException: SQL logic error
no such table: Users
Надо прописать полный путь в App.config к твоей БД
@@morze_py теперь выдает ошибку System.Data.DataException: "An exception occurred while initializing the database. See the InnerException for details."
в строчке db.Users.Add(user);
@@morze_py сделал все как в уроке
мы не одни походу
connectionString="Data Source=C:\Users\Admin\source
epos\testProject\testProject\accepted.db" типа так должно быть
Я сразу от его старых уроков по python и у меня вопрос, как голос может так поменяться, или это его сын?
Привет, вроде бы сделал всё как в видео, по инструкциям, и даж понимаю что как работает, но выдаёт ошибку: DllNotFoundException: Не удается загрузить DLL "SQLite.Interop.dll": Не найден указанный модуль. (Исключение из HRESULT: 0x8007007E) Если кто то сталкивался с такой, можете обьяснить?
Ну, не найден модуль такой то. Скорее всего, ошибка при установке библиотеки SQLite
а как удалить созданную в БД запись?
System.InvalidOperationException: "Тип сущности User не входит в модель для текущего контекста."
Как исправить эту ошибку?
У меня тоже самое, как исправили ?
У меня тоже, вы никак не решили?
а щас кто нибудь понял в чем ошибка?
Делал всё по видео, и столкнулся с ошибкой SQLiteException: SQL logic error no such table: Clients, хотя таблица с таким названием есть в базе данных. Кто знает, как решить данную проблему?
Попробуй прописать полний путь к бд, в AppConfig
попробуй добавить базу данных в папку debug в проекте
Нашли решение?
та же проблема
connectionString="Data Source=C:\Users\Admin\source
epos\testProject\testProject\accepted.db" типа так должно быть
Сделать это же но на MS SQL можно за 5 минут и всё будет работать как надо. Но сделать это на SQLite оч сложно! и только не говорите мне что SQLite простая БД...
Гоша держит планку
не работает код, выбивает ошибку "callback.Invoke(state); System.Windows.Markup.XamlParseException: "'The invocation of the constructor on type 'WpfApp4Лаба.MainWindow' that matches the specified binding constraints threw an exception.' Line number '8' and line position '9'."
"
Почему то данные записанные в приложении не отображаются в DB browser for SQlite
Решил проблему?
@@user-sh6ef2rr3yда)
@@_GlebSter_ скажи как?
@@user-sh6ef2rr3y я открывал не тот файл, нужно открывать, который находится в приложении в папке debug
Точный путь не помню, если не найдешь, то чуть позже напишу
А если в таблице 20 полей и каждую описывать get set и тд??
Да. Просто все надо сделать на MVVM
Используй реконструирование
@@WeCoders Не ругайся пожалуйста. Тут это неприемлемо...
Пробовал с нуля раза три все сделать, но все равно не работает, требует первичный ключ, пробовал установить как в одном из комментариев ниже было, искал в интернете, но ничего рабочего не нашел. Так же обратил внимание, что у меня id в User.cs серого цвета, а на видео нет. SQLite Users: EntityType: EntitySet 'Users' is based on type 'User' that has no keys defined
Убедись что у тебя свойство "id" в классе User прописано именно как на видео: "public int id { get; set; }". При попытках написать полным свойством или просто полем ругается на отсутствие первичного ключа. Ошибки разные, но суть одна.
ты ничего не объясняешь по сути, ты просто показываешь код и говоришь списывать как у тебя. Если хочешь разораться в чём-то, то это явно не сюда.
научился блин... никто теперь не поможет.. как всегда блин
System.Windows.Markup.XamlParseException: ""Вызов конструктора для типа "UsersApp.MainWindow", удовлетворяющего указанным ограничениям привязки, привел к выдаче исключения.": номер строки "8" и позиция в строке "9"."
@@betnews-8616 Такая же проблема , решение найдено ?
@@user-tp3mf9xj6o блин да, как-то решил уже не помню, напомни что там и где, подскажу
Найс 2 часа убил из за того что перед названием БД в config забыл точку поставить
крайне противоречивое мнение сложилось о данных уроках, если бы не имел представления что такое ООП, я бы не понял почему я сделал всё так же как и в уроке но у меня появилась ошибка, если кому интересно, то у меня менялся текст label ДО того как он создался, а делал я всё по видеоуроку
Ага, он же в первом уроке говорил - курс не для новичков, а для тех, кто уже разбирается в С#( значит и в ООП) и в WinForms
@@rainbowskycountris9022 WinForms совершенно необязательно знать и XAML так же. Но надо знать XML и C#. И желательно хорошо.
Я двое суток потратил на простенькую ошибку!!!! Твою ж дивизию....
нужно сразу писать через публичное свойство (именно публичное)
public id {get; set;}
не менять ни название поля в базе, ни свойство. гет/сет тоже оба должны быть.
этот sqllite редкостное г-но, постоянно исключения и ошибки. под winforms тоже грабли. то одно криво встает, то другое. два дня секса с компом, ну его на уй
У меня было 3 дня но я поборол проблему. Хотя пришлось сделать всё по другому... А как у него всё равно не заработало.. У меня всё время ошибку 50 выдавало. Это том что не найден экземпляр сервера БД . Но какой экземпляр это не серверная БД... Там нет никакого экземпляра. И быть не может. Вобщем бредовая ошибка из которой ничего не ясно кроме одного - не работает...
@@kpanat у меня все давно заработало