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