Вызов хранимой процедуры на клиенте
Life-HackВызов хранимой процедуры 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()";