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

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

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()";


Источник

Report Page