Best Practice merupakan suatu cara paling efisien dan efektif untuk menyelesaikan suatu tugas, berdasarkan suatu prosedur yang dapat diulangi yang telah terbukti manjur untuk banyak orang dalam jangka waktu yang cukup lama.
Pada artikel ini kami ingin sedikit sharing bagaimana cara yang paling efisiensi melakukan Query dari C# Execute Stored Procedure (MYSQL) versi kami.
Berikut merupakan pembuatan Procedure untuk menyimpan data product
CREATE DEFINER=`root`@`%` PROCEDURE `DEKSTOP_PRODUCTCREATE`(
IN_SALESORG varchar(10),
IN_DISTCHAN varchar(10),
IN_MATERIAL varchar(18),
IN_MATERIALDESC varchar(255),
IN_AMOUNT DECIMAL,
IN_PRICE DECIMAL
)
BEGIN
INSERT INTO sfam_material
(COND, SALESORG, DISTCHAN, MATERIAL, MATERIALDESC, AMOUNT, AMOUNTUNIT, PRICE, PRICEUNIT) VALUES
('ZP02', IN_SALESORG, IN_DISTCHAN, IN_MATERIAL, IN_MATERIALDESC, IN_AMOUNT, 'IDR', IN_PRICE, 'PIECE');
SELECT CONCAT("Data Produk Berhasil Disimpan, MATERIAL: ",IN_MATERIAL);
END
Untuk table, mohon disesuaikan.
Selanjutnya berikut sample code pada Program C# Dekstop Application ketika ingin execute Stored Procedure MySQL
private void ExecuteData_Save()
{
try
{
if(MessageBox.Show("Apakah Anda yakin ingin Menyimpan data ini?", "Konfirmasi", MessageBoxButtons.YesNo, MessageBoxIcon.Question)== DialogResult.Yes)
{
using (MySqlConnection koneksi = new MySqlConnection(Program.koneksistring))
{
koneksi.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.CommandText = @"CALL `DEKSTOP_PRODUCTCREATE`(
@IN_SALESORG ,
@IN_DISTCHAN ,
@IN_MATERIAL ,
@IN_MATERIALDESC ,
@IN_AMOUNT ,
@IN_PRICE
)";
cmd.Parameters.AddWithValue("@IN_SALESORG", T_SALESORG.Text);
cmd.Parameters.AddWithValue("@IN_DISTCHAN", T_DISTC.Text);
cmd.Parameters.AddWithValue("@IN_MATERIAL", T_MATERIAL.Text);
cmd.Parameters.AddWithValue("@IN_MATERIALDESC", T_MATERIAL_NAME.Text);
cmd.Parameters.AddWithValue("@IN_AMOUNT", T_MATERIAL_AMOUNT.Text);
cmd.Parameters.AddWithValue("@IN_PRICE", "100");
cmd.CommandType = CommandType.Text;
cmd.Connection = koneksi;
MySqlDataReader rdr = cmd.ExecuteReader();
if (rdr.Read())
{
Program.MessageInf(rdr[0].ToString());
B_SIMPAN.Text = "RUBAH";
}
koneksi.Close();
}
}
}
catch (Exception Ex)
{
Program.MessageErr(Ex);
}
}
Pastikan juga sebelum melakukan execute data , ada validasi inputan
Berikut merupakan sample code untuk validasi inputan form
private bool Validasi()
{
try
{
if(T_MATERIAL.Text == "")
{
Program.MessageErr("ID Harap Diisi");
return false;
}
else
if (T_MATERIAL_NAME.Text == "")
{
Program.MessageErr("Product Description Harap Diisi");
return false;
}
else
if (T_MATERIAL_AMOUNT.Text == "")
{
Program.MessageErr("Product Amount Harap Diisi");
return false;
}
else
if (T_DISTC.Text == "")
{
Program.MessageErr("Dist. Channel Harap Diisi");
return false;
}
else
if (T_SALESORG.Text == "")
{
Program.MessageErr("Sales Org. Harap Diisi");
return false;
}
}
catch(Exception Ex)
{
Program.MessageErr(Ex);
return false;
}
return true;
}
Setelah semua jadi, buat 1 tombol simpan, kemudian ketik sample code berikut ini
private void B_SIMPAN_Click(object sender, EventArgs e)
{
if (Validasi() == true && B_SIMPAN.Text == "SIMPAN")
{
ExecuteData_Save();
}
}
Sampai disini , Selesai.
Semoga bermanfaat