Вызов хранимой процедуры на клиенте

Вызов хранимой процедуры MySQL на клиенте

В этой статье добавим возможность вызова хранимой процедуры из нашего клиентского приложения.

Для начала не много изменим GUI нашего приложения, добавив на форму три элемента: два текстовых поля: txtContent и txtReply и одну кнопку с надписью ответить.

форма приложения

Затем создадим метод ReplyToComment, который будет принимать два параметра: текст ответа и id комментария.

private void ReplyToComment(string reply, int id)
{
ConnectionStringSettings conString;
conString = ConfigurationManager.ConnectionStrings["MySQLConStr"];
using (MySqlConnection con = new MySqlConnection(
conString.ConnectionString))
{
//первым параметром указываем имя хранимой процедуры
MySqlCommand com = new MySqlCommand("ReplyToComment", con);
//Указываем тип команды - хранимая процедура
com.CommandType = CommandType.StoredProcedure;
//Создаём два параметра:
//текст ответа
MySqlParameter contentParam = new MySqlParameter();
contentParam.ParameterName = "@Content";
contentParam.Value = reply;
contentParam.MySqlDbType = MySqlDbType.Text;
com.Parameters.Add(contentParam);
//id комментария
MySqlParameter comIDParam = new MySqlParameter();
comIDParam.ParameterName = "@ComID";
comIDParam.Value = id; 
comIDParam.MySqlDbType = MySqlDbType.Int64; //bigint
comIDParam.Size = 20;
com.Parameters.Add(comIDParam);
con.Open();
com.ExecuteNonQuery();
}
}

Вызов метода будет происходить при нажатии на кнопку ответить.

private void button2_Click(object sender, EventArgs e)
{
ReplyToComment(txtReply.Text, curCommentID);
}

Второй параметр (id) будем получать при нажатии на ячейки в datagridView, при этом в текстовое поле (txtContent) будет выводиться текст комментария.

private void dataGridView1_CellClick(object sender,
DataGridViewCellEventArgs e)
{
txtContent.Text = dataGridView1.Rows[e.RowIndex].
Cells["comment_content"].Value.ToString();
curCommentID = int.Parse(dataGridView1.Rows[e.RowIndex].
Cells["comment_ID"].Value.ToString());
}

Хранить значение выбранного id комментария будем в переменной curCommentID

namespace MySQLStored
{
public partial class MainForm : Form
{
int curCommentID;
public MainForm()
{
InitializeComponent();
}
}

В методе GetComments изменим строку запроса, добавив для выборки ещё одно поле comment_ID.

string queryString = @"SELECT comment_author,
comment_date,
comment_content,
comment_ID
FROM   wp_comments
WHERE  comment_date >= CURDATE()";

Видео

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

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*