Изменение данных в базе данных 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 с помощью так называемого параметризованного запроса.

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 вы можете явно указать для каждого параметра направление, например:

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

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

Вызов:

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

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

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

Похожие темы

Как получить отдельную таблицу MySQL из массивного... Представьте следующую ситуацию: кто-то сделал бэкап всей базы данных MySQL — очень большой бэкап — обычными инструментами. Результатом э...
Новости софта от 28 сентября 2014 года (WebMoney K... Обновилась утилита для работы с одной из популярных платежных систем в интернете — WebMoney. Новая версия имеет номер WebMoney Keeper Classic ...
Как выполнить MySQL запрос в скрипте командной стр... Когда вы пишите скрипт командной строки как часть некоторой пакетной обработки, бывают ситуации, когда скрипту нужно обработать данные, хранящиеся н...
Введение в хранимые функции MySQL 5... Хранимые процедуры MySQL (часть 2) В этой части статьи допишем начатую в предыдущей статье хранимую процедуру и научимся создавать хранимые mysql фун...
Пространства имен в С++ Известен модульный подход к программированию, согласно которому программу нужно рассматривать как совокупность модулей, каждый из которых предст...