How to connect to MYSQL with WPF?
But there’s a very simple way of doing this in WinForms using the MySQL Connector thing from the mysql site. Can I use this with WPF aswell? Or is it just a WinForms thing? I’ve tried it, but doesn’t seem to work.
How can I connect to MYSQL with WPF?
2 Answers 2
WPF and MySQL have absolutely nothing to do with each other, and can be used together as much as you like. How you implement this is a choice, but going for a separate Data-layer is always a good option. If you create an interface for the data operations, for example
you can implement this interface how you want to, and use the MySQL connector or Entity Framework or even NHibernate to access the data. This way WPF doesn’t know what database is used, which it really doesn’t need to know in the first place.
You could use Entity Framework for this. There’s more information on how to use Entity Framework with MySQL in this SO question.
-
The Overflow Blog
Linked
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.3.13.43310
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
c# & Java on Tips, Hibernate ORM, JSF(Java Server Faces), Primefaces, WPF, Windows form
Hello guys, today i’m gonna teach you how to connect MYSQL with MS visual studio c#. This tutorial is about MySQL workbench 5.2 and MySQL server 5.5, make sure both are installed in your PC.so let’s get started first of all open MySQL workbench 5.2 then click on New Server Instance. And follow the steps to configure your server. When you are done make a database let’s say I made a database name “Text” and Server name is Localhost.
Create table according to your need. I have created a table employee which has Idemployee and EmployeeName two attributes. Idemployee is primary key and ofcourse not null able. EmployeeName has size 45 characters. I have added two instances in the employee table:
Как подключить wpf к mysql workbench
Я наконец начал писать вторую главу . Давай, давай, я должен закончить писать эту серию .
Начиная с этой статьи, я познакомлю вас с точки зрения процесса и структуры проекта, перемежающихся с проблемами и встречающимися ямами.
(Эта статья в основном представляет страницу входа и структуру фрейма основного интерфейса)
Информация о проекте
Основная функция: Добавляйте, удаляйте и изменяйте информацию о сотрудниках, создавайте и распечатывайте форму оценки в определенном формате и управляйте пользователем (несколько пользователей могут войти в систему с разными именами пользователей и паролями, и требуется управление)
пользователь: Руководители и сотрудники отдела кадров. Первый использует программу для просмотра подробной информации сотрудника без выполнения других операций, а второй использует программу для редактирования и управления информацией сотрудника.
Метод развертыванияМы развернем программу на нескольких компьютерах отдела кадров компании и развернем базу данных сотрудников на сервере компании. (Не рекомендуется размещать такую базу данных на персональном компьютере, одна из них небезопасна, а другая заключается в том, что большую часть времени она не отвечает требованиям предоставления услуг)
Программная и интерфейсная логика
Во-первых, вам необходимо войти в систему. После успешного входа в систему вы можете ввести «Управление персоналом», «Управление пользователями», «Резервное копирование данных» и «Страница справки». Сосредоточьтесь на странице управления персоналом.На этой странице вы можете увидеть таблицу информации о сотруднике, а также подробную информацию о каждом сотруднике, а также добавить, изменить и удалить операции.
Интерфейс входа
Интерфейс WPF может быть создан путем перетаскивания. Мой подход заключается в том, чтобы сначала перетащить грубый интерфейс, а затем использовать панель свойств на стороне Visual Studio или изменить код XAML для более точных настроек, таких как управление размером шрифта, цветом или выравниванием. Путь и т. Д. После броска был сделан следующий интерфейс: (значок изIconfont, Библиотека векторных иконок Али)
В процессе разработки я столкнулся со многими проблемами, большими и малыми, и записал их по порядку в соответствии с воспоминаниями .
- Как процитировать эти иконки?
Есть несколько способов решить проблему Baidu, вот два более простых: один — использовать абсолютный путь, то есть добавить его в тег image. Source="C:\Users\admin\Desktop\icon\password.png" Такое описание пути в порядке. Но это эквивалентно написанию мертвого кода, и это не очень рекомендуется. В итоге я выбрал второй метод — относительный путь. Сначала создайте новую папку в каталоге проекта и щелкните правой кнопкой мыши, чтобы добавить существующий элемент, а затем используйте метод, показанный на рисунке, для ссылки. 
- Имя пользователя использует элемент управления TextBox, который поставляется с WPF. Как отобразить серое слово?
Добавьте следующий код в TextBox в XAML:
- Поле пароля использует элемент управления PasswordBox, который поставляется с WPF, но из-за предоставленных нам ограниченных атрибутов он не может установить информацию подсказки, такую как TextBox, что мне делать?
Ответ заключается в том, что вы можете реализовать только один . К счастью, кто-то решил эту проблему в Stackoverflow. Сначала нам нужно добавить следующие классы и методы после класса в файле .cs, соответствующем XAML:
Затем вернитесь в файл XAML и добавьте следующий код, который определяет свойство PasswordBox в начале (перед первым определяемым нами элементом управления):
Хотя это выглядит много, идея все еще очень ясна. Это эквивалентно сначала написанию класса, а затем определению атрибута. Вы можете установить серый текст подсказки в атрибуте.
В дополнение к этим проблемам, вам необходимо сравнить содержимое базы данных при входе в систему, чтобы убедиться, что имя пользователя и пароль совпадают правильно. Эта часть содержимого не будет написана первой, и я поговорю об этом позже с другими операциями с базой данных
Основной интерфейс
Основной интерфейс выглядит следующим образом: (Не выбрасывайте его из космоса, это демо . ) 
Вы можете использовать его как страницу приветствия, с подсказками или заметками.
- Как написать такой интерфейс? Как перейти на разные страницы, нажимая на разные строки меню?
Макет страницы использует DockPanel, который является макетом, который позволяет закреплять элементы в определенном направлении на странице. Здесь сначала определяются верхний и нижний элементы (то есть меню и строка состояния), а затем определяется фрейм, так что фрейм будет посередине. Роль Frame состоит в том, чтобы встроить страницу в окно. Здесь WelcomePage, показывающий приветственную информацию и заметки, размещается в главном интерфейсе, а панель навигации отключена. Когда вы щелкаете пункт меню, Frame может отображать содержимое других страниц. Упрощенные элементы страницы:
В файле .cs, взяв в качестве примера событие click пункта меню управления персоналом, передайте public static Page1 p1; Определите статическую переменную p1, где Page1 — еще одна вновь созданная страница, как показано ниже:
Таким образом, вы можете нажать, чтобы реализовать функцию перехода по строке меню.
Хорошо, эта статья написана здесь. Следующая статья объяснит связь между различными страницами и более сложными частями каждой страницы. Увидимся в следующий раз
Как подключиться к MYSQL с помощью WPF?
Но есть очень простой способ сделать это в WinForms, используя MySQL Connector с сайта mysql. Могу ли я использовать это с WPF? Или это просто игра WinForms? Я пробовал, но, похоже, не работает.
Как подключиться к MYSQL с помощью WPF?
WPF и MySQL не имеют абсолютно никакого отношения друг к другу и могут использоваться вместе столько, сколько вам нравится.
Как вы это реализуете, это выбор, но переход на отдельный слой данных всегда является хорошим вариантом. Если вы создаете интерфейс для операций с данными, например
вы можете реализовать этот интерфейс так, как хотите, и использовать соединитель MySQL или Entity Framework или даже NHibernate для доступа к данным. Таким образом, WPF не знает, какая база данных используется, что ей действительно не нужно знать в первую очередь.
Для этого вы можете использовать Entity Framework. Там более подробная информация о том, как использовать Entity Framework с MySQL в этом SO вопрос.
Основы работы с MySQL Workbench: подключение удалённого сервера и синхронизация с ним
В первой части обзора программы MySQL Workbench я показал на примере основные принципы разработки модели данных и создания EER-диаграммы «сущность-связь». Пришло время применить MySQL Workbench в бою, поэтому сегодня я расскажу о создании подключения к удалённому серверу, выгрузке mwb модели на сервер, синхронизации обновлений схемы данных в процессе работы, а так же об управлении MySQL сервером с помощью программы MySQL Workbench.

Экспорт модели MySQL Workbench в SQL дамп
Самый быстрый путь для того, чтобы схема данных из MySQL Workbench попала на сервер — создание SQL дампа mwb модели. Для этого не потребуется создавать удалённое подключение в программе, однако этот способ хорош лишь в случае, если требуется однократная заливка структуры и базовых данных на сервер. Дальнейшая поддержка, обновление и синхронизация модели данных в этом случае будет весьма проблематична (хотя, в MySQL Workbench есть функционал и для этого, но он не входит в планы моего обзора). Итак, открываем нашу модель и выбираем «File → Export → Forward Engineer SQL CREATE Script. » (Ctrl + Shift + G):

Если требуется записать дамп в файл, указываем путь до файла в поле «Output SQL Script File» (если оставить поле пустым, SQL скрипт можно будет скопировать на последнем шаге в буфер обмена). Мы видим окно настроек экспорта. Настройки стандартные, чтобы понять их суть, достаточно перевести их названия. Поясню только то, что галочка «Generate INSERT Statements for Tables» включает в дамп базовые данные, располагающиеся во вкладке «Inserts» интерфейса редактирования таблиц модели. После нажатия «Next» мы видим список того, что вообще можно экспортировать. Для экспорта таблиц выбираем «Export MySQL Table Objects», а чтобы экспортировать их выборочно, нажимаем «Show Filter» и выбираем нужные нам таблицы:

Нажав «Next» мы увидим в окне готовый SQL скрипт, откуда сможем скопировать его в буфер обмена или же записать в какой-либо файл.

Путей, которыми структура и данные попадут к вам на сервер масса, а самый распространённый из них — импорт через PHPMyAdmin.
Создание удалённого подключения к серверу MySQL
А вот это уже необходимо для постоянной работы с сервером. Советую не лениться и всегда создавать эти подключения — они дают массу новых возможностей!
На стартовом экране нажимаем плюсик рядом с надписью или выбираем «Database → Manage Connections. «, в открывшемся окне нажимаем кнопку «New». MySQL Workbench предлагает три способа подключения к серверу: прямое подключение через пользователя, которому разрешён удалённый доступ к MySQL (обычно доступ таких пользователей ограничивают по ip), socket / pipe подключение через файл сокета (для Unix) или pipe (для Windows), а так же подключение через ssh-туннель (требует наличие ssh доступа и юзера ssh и MySQL с соответствующими правами). Рассмотрим варианты подключения к удалённому серверу:
Через удалённого пользователя MySQL (Standard: TCP/IP)
В диалоговом окне создания подключения выбираем тип подключения «Standard: TCP/IP»:

- В поле «Host» вводим адрес сервера MySQL или адрес сайта (если MySQL сервер находится на самом веб сервере)
- «Port» по умолчанию чаще всего 3306
- Вводим имя пользователя MySQL («Username»), пароль («Password») и имя базы данных («Default Schema»)
- После создания подключения нажимаем «Test Connection» и ждём сообщения «Connection parameters are correct.»
Если что-то пошло не так, проверяем, включен ли у нашего пользователя удалённый доступ, а так же наличие ip адреса нашего компьютера в списке разрешённых для данного юзера.
Через SSH туннель (TCP/IP over SSH)
В диалоговом окне создания подключения выбираем тип подключения «Standard: TCP/IP over SSH»:

- Тут нам придётся ввести адрес веб сервера («SSH Hostname») (порт, если нужно, указывается через двоеточие, например, «linuxsc.pro:18752»)
- Вводим логин и пароль SSH пользователя («SSH Username» и «SSH Password»)
- Адрес MySQL сервера нужно вводить относительно веб сервера, то есть в случае, если MySQL и веб сервер находятся на одной машине, в поле «MySQL Hostname» оставляем «127.0.0.1»
- «MySQL Server Port» по умолчанию 3306
- В поля «Username» и «Password» вводим логин и пароль пользователя MySQL
- Проверяем подключение при помощи кнопки «Test Connection»
Список доступных подключений можно просмотреть в диалоговом окне, выбрав «Database → Manage Connections. «
Синхронизация структуры данных
Для синхронизации структуры базы данных и локальной модели в MySQL Workbench существует специальный инструмент. Открыв нужную модель, выбираем «Database → Synchronize Model. » (Ctrl + Shift + G), после чего мы можем выбрать одно из сохранённых удалённых подключений и отредактировать его параметры. Жмём «Next» для подключения к базе данных:

После подключения к серверу и нажатия «Next» мы увидим список моделей (в левой колонке) и баз данных (в правой колонке), доступных для синхронизации:

Выбрав галочкой нужную базу и схему, нажимаем «Next», запуская процедуру сравнения структур удалённой базы данных и нашей модели:

После завершения процедуры мы можем увидеть список различий между нашей схемой данных и удалённой базой:

Тут мы можем настроить объединение таблиц: протолкнуть наши изменения на сервер («Update Source»), втянуть в локальную модель конфигурацию с сервера («Update Model») или игнорировать отличия («Ignore»). При чём, доступен как вариант настройки для всей базы, так и отдельно для каждой таблицы. При выделении одной из таблиц и выборе способа объединения мы можем видеть SQL запросы, которые выполнятся в процессе синхронизации, а нажав «Next» — увидим полный стек этих запросов:

Просмотрев SQL запросы, нажимаем «Execute >», запуская этим выполнение синхронизации. Если всё пройдёт успешно, мы увидим такой отчёт:

В случае возникновения ошибок их лог отобразится в этом же диалоговом окне. Некоторые из них разобраны в конце этой статьи
Выгрузка на сервер схемы и стартовых данных
Описанная выше синхронизация осуществляет лишь объединение структуры схемы данных удалённой базы и локальной модели, но никак не затрагивает стартовые данные, внесённые в модель («Inserts»). Если требуется выгрузить их, выбираем «Database → Forward Engineer. » (Ctrl + G), затем выбираем одно из сохранённых ранее подключений (или создаём новое) и нажимаем «Next». В остальном механизм выгрузки аналогичен механизму экспорта mwb модели, описанному в начале статьи. Его можно так же использовать, если требуется простая выгрузка схемы данных на сервер без синхронизации.
Администрирование базы данных
MySQL Workbench может быть прекрасной альтернативой PHPMyAdmin и в администрировании данных. Потребуется лишь создать подключение к MySQL серверу. Поскольку я использую Workbench с самого старта разработки, настроенное подключение у меня уже имеется в наличии. Кликаем на нужное подключение на стартовом экране или выбираем «Database → Connect to Database. » (Ctrl + U) и выбираем подключение из списка.
Список доступных для редактирования баз данных можно увидеть в левой панельке в разделе «SCHEMAS». Открыв нужную базу данных, можно увидеть список таблиц в ней:

В правой же области мы можем видеть вкладки разных видов, к примеру, на скриншоте выше открыта вкладка составления SQL запроса, в которой есть масса полезных фишек и примочек, помогающих в его редактировании, которыми я, признаться, ни разу не пользовался Выполнять запросы можно комбинацией клавиш Ctrl + Enter.
Для просмотра, создания или редактирования записей нажимаем на нужную таблицу правой кнопкой и выбираем «Select Rows — Limit 1000» или выполняем нужный для выборки SQL запрос:

В открывшейся вкладке мы увидим симпатичный и человекопонятный грид, в котором интуитивно и без труда сможем работать с данными. Протолкнуть изменения в базу можно при помощи кнопки «Apply», а отменить — кнопкой «Cancel» в нижней части вкладки редактора.
Управление сервером, создание и восстановление бэкапов
Создать backup базы данных очень просто, выбрав Server → Data Export при наличии активного подключения к удалённому серверу:

Крутизна, да? Можно бэкапить как всю базу, так и по частям. Можно хранить все бэкапы удобно и упорядоченно. Блин, можно всё что хочешь!
Восстановить backup тоже проще простого. Выбираем Server → Data Import, находим нужный файл и не долго думая нажимаем «Start Import»:

В общем, да, в MySQL Workbench есть целая куча всего для управления сервером баз данных: управление пользователями и их правами, управление настройками сервера (если у вашего пользователя есть соответствующий доступ). К примеру, выбрав Server → Server Status, мы можем посмотреть такую вот классную статистику нагрузки на MySQL:

Такую красивую статистику просто скушать хочется! Приятно смотреть на такую эффективную эффективность моих ключей и индексов А вот над буфером InnoDB нужно подумать.
Вместо заключения (о некоторых подводных камнях)
Вдохновившись, в заключении я хотел написать хвалебный отзыв о том, на сколько же крута MySQL Workbench. Однако уровень её крутизны, думаю, прослеживается на протяжении всего обзора, а вот о некоторых подводных неприятностях, с которыми мне пришлось столкнуться, стоит упомянуть.
Программа периодически подвисает или «падает»
Суть проблемы: некоторая неустойчивость MySQL Workbench прослеживалась у меня на разных компах с разными ОС. Видимо, разработчики о ней тоже знают — в процессе работы изменения записываются в *.bak файл, что не раз выручало меня после «падения».
Решение: почаще сохраняться Так же практика показывает, что лучше не тыкать беспорядочно на всё подряд, а перед следующим действием ожидать завершения предыдущего.
Ошибка «Error 1292: Incorrect date / datetime value» при синхронизации
Суть проблемы: чаще всего такая ошибка возникает при попытке синхронизации с таблицей, в которой есть запись со значением ‘0000-00-00’ или ‘0000-00-00 00:00:00’ в полях типа DATE или DATETIME соответственно. В некоторых случаях настройки MySQL позволяют создавать такие записи, но не позволяют редактировать схему таблицы.
Решение: вообще, при синхронизации или экспорте данных MySQL Workbench добавляет специальные запросы, как бы оборачивая основной SQL код:

Вчитавшись в этот код, начинаешь думать, что программа пытается решить эту проблему самостоятельно. Парадокс в том, что для решения проблемы эти строки нужно удалить:
Ошибка «Error 1005: Can’t create table ‘. ‘ (errno: 150)» при синхронизации
Суть проблемы: обычно эта ошибка касается неправильной настройки внешних ключей (вкладка «Foreign Keys» в настройках таблиц). У меня она возникала в том случае, если я делал ключом поле с меткой NOT NULL, а в поведении внешнего ключа указывал SET NULL — это абсурд, ведь InnoDB не сможет установить значение NULL в поле, где такое значение запрещено.
Решение: внимательно следим за настройкой поведения внешних ключей. Если необходимо поведение SET NULL, у поля-ключа в дочерней таблице не должен стоять флаг NOT NULL.
Ошибка «Field . can not be null» при выгрузке стартовых данных
Суть проблемы: независимо от настроек таблицы, все поля в «Inserts» имеют по умолчанию значение NULL, даже если такое значение не разрешено для данного поля. Соответственно, при выгрузке на сервер может возникнуть ошибка.
Решение: при добавлении стартовых данных следим за тем, чтобы значение NULL оставалось лишь в тех полях, где это разрешено. Если нужно сделать поле пустой строкой, делаем финт ушами: ставим в него курсор, нажимаем пробел, затем стираем его (во всяком случае, я не придумал ничего получше на такой случай :)).
Ошибка Сan’t connect to MySQL server on . (10061) при подключении
Суть проблемы: говорят, что может быть несколько причин. Я встечал такую ошибку в случае, если в файле my.cnf была установлена настройка «skip-networking» — по сути она не даёт MySQL работать с сетью.
Решение: закомментировать данную опцию:
Конец
Итак, мой обзор программы MySQL Workbench в двух частях (кстати, первую часть можно найти тут) подходит к концу. Буду рад, если читатель почерпнет для себя в нём что-то полезное или интересное
Как подключить wpf к mysql workbench
This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.
![]()
- ProfileText
- Sign in
Answered by:
Question
Sorry guys, if this is a repost. Couldn’t really find an answer from the past posts, hence hopefully will get one with my new post.
I had a Window Forms with DatagridView, I am able to link to my database. But when I tried to connect the database as a code e.g.
The whole page just hang there. I tried going to SQL-> New Query and tried to connect to the database. All I got was Error 2.
I just couldn’t understand, why was it that I can connect using DatagridView but not the coding?
Any advise please? Thanks in advance!!
Answers
- Marked as answer by Bob Shen Monday, March 11, 2013 11:42 AM
I will freely admit it has been quite some time since I have utilized MySQL. But if memory serves, you had to use their driver (e.g. MySQL Connector) to connect. Do you have their .Net drivers and are your referencing them properly?
- Edited by Kevin M Cloutier Tuesday, March 5, 2013 2:12 PM Added link
- Marked as answer by Bob Shen Monday, March 11, 2013 11:42 AM
All replies
Any chance you could paste the entire try/catch block where you are attempting to connect? That may be helpful for us to determine what is actually going on here. Also, which library are you using to connect to MySQL?
Thanks for the reply!
Hmm, my try/catch block is pretty simple. I am using a Windows form application, and once a button is clicked, I will open the connection path to mySQL. (Hopefully I am doing right in attaching the codes like this)
Name already in use
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
WPF + MySQL Workbench app
About
WPF + MySQL Workbench app
Resources
Stars
Watchers
Forks
Releases
Packages 0
Languages
Footer
© 2023 GitHub, Inc.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.