Изменение данных в базе данных MySQL

В этой статье мы рассмотрим на нескольких простых примерах, как изменить данные в базе данных MySQL с помощью языка c#.

И так предположим, что у нас есть база данных, например myDB, которая содержит всего одну таблицу friends, состоящую буквально из двух колонок: id и name.

колонка

Создадим новое приложение типа Windows Forms Application на языке c#, после чего добавим на форму элемент управления Button.

Windows form

Затем создадим новый метод, например ChangeName, с помощью которого мы будем изменять уже существующие данные в колонке name.

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

Вызов метода ChangeName поместим в обработчике события Button_Click.

Нажимаем на кнопку и получаем результат как на картинке ниже.

таблица

Более подробно о том, как работать с базой данных MySQL, можно прочитать, перейдя по ссылке.

Метод ExecuteNonQuery используется для отправки команды, которая содержит запрос: UPDATE, INSERT INTO или DELETE.

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

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

Поэтому в следующем примере мы рассмотрим, как изменить имя Василий на имя Николай с помощью текстового поля (textBox).

1. Добавим на существующую форму два текстовых поля: txtOldName(имя в таблице, которое нужно изменить) и txtNewName (новое имя).

форма

2. В метод ChangeName добавим два параметра:

3. Изменим sql запрос

Для удобства работы с подставляемыми значениями воспользуемся методом Format

Вызов

результат

столбец

Данный способ позволяет легко изменить данные в базе данных Mysql, но является небезопасным, так как позволяет пользователю внедриться в запрос и, например, выполнить такой тип атаки, как sql инъекция. Поэтому на практике такой способ работы практически не используется.

Параметризованный запрос

В третьем примере мы рассмотрим более безопасный способ изменения данных в базе данных MySQL с помощью так называемого параметризованного запроса.


Набираем команду codeby webinar

Набираем команду для организации и проведения вебинаров Подробнее ...

1. Для начала в уже существующем коде создадим два параметра:

Все параметры должны быть созданы до того как будет выполнена команда!

2. Теперь изменим sql запрос, добавив в него созданные параметры

Вызов:

Заполняем текстовые поля и нажимаем на кнопку.

Хранимые процедуры

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

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

1. И так, для начала на сервере MySQL мы создадим хранимую процедуру, например с точно таким же именем (ChangeName). Имя можно указать любое.

Имя процедуры: ChangeName
Тип: Procedure

Процедура будет принимать два входящих параметра: новое имя и старое имя

IN newname VARCHAR 20 utf8
IN oldname VARCHAR 20 utf8

создание процедуры

Сама процедура:

Затем изменим, значение параметра «Доступ к SQL данным» (SQL Data ACCESS) на MODIFIES SQL Data, так как используем оператор UPDATE.

хранимая процедура

Возвращаемся на клиентскую сторону.

1. Так как теперь отправлять sql запрос на сервер не нужно (теперь мы будем отправлять только имя процедуры, которую нужно выполнить), то на клиенте строку запроса можно либо просто закомментировать, либо вообще удалить.

2. В методе ChangeName (на клиенте) изменим, первый параметр конструктора команды, указав вместо переменной, которая содержит строку запроса, имя созданной нами хранимой процедуры.

3. Явно укажем тип команды, установив для свойства CommandType значение StoredProcedure.

Во всех выше приведённых примерах использовался тип Text.

Он используется по умолчанию, поэтому обычно его не указывают явно.

4. Созданная нами процедура принимает два входящих параметра, которые мы уже создали (на клиенте) в предыдущем примере.

С помощью свойства Direction вы можете явно указать для каждого параметра направление, например:

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

Часть которая изменилась:

Вызов:

Создавать параметры также можно с помощью короткой записи:

Вот в принципе и всё, если есть вопросы, то оставляйте их в комментариях или на форуме.

Читайте также:


Получи 30.000 рублей от codeby

Мы запустили конкурс для авторов, в котором может принять участие любой желающий. За первое место - 7500 руб., второе - 5000, третье 2500. Главный приз 30.000 рублей вы получаете независимо от места в конкурсе. Подробнее на форуме codeby ...

Похожие темы

точка входа в программу на языке c#... Точка входа в программу на языке c# В предыдущей статье был написан исходный код нашей первой программы на языке c#, которая содержит: один класс по ...
SQL-инъекции: простое объяснение для начинающих (ч... Суть SQL-инъекций Наверное, уже слышали шутку из Интернета: «Почему во всех уроках рисования одно и тоже: Например, урок по рисованию совы. Сначала п...
Как защитить MongoDB на Linux или Unix серверах... MongoDB подвергается различным атакам. Это являются распространенным явлением. Я использую его для хранения данных на моем публичном облачном сервер...
Новости софта от 24 сентября 2014 года (MySQL, MiA... MySQL Community Server (проще говоря, это и есть MySQL, бесплатная версия, которой все пользуются) обновился до версий MySQL Community Server 5.6.21...
Установка MySQL for Visual Studio Как установить MySQL for Visual Studio? MySQL for Visual Studio это продукт от компании Microsoft, который предоставляет дополнительные инструменты д...