Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Meminta contoh yang sah untuk memanggil prosedur tersimpan C#:MYSQL

Saya percaya kode dan gambar mengatakan lebih dari yang pernah saya lakukan.

C# DB Layer (Lapisan DB memiliki conn sebagai string koneksi):

// Note: this is an instance (myDB in terms of the GUI Object)

using System.Data;
using MySql.Data.MySqlClient;
...
...
public long MultBySeven(long theNum)
{   // Call a Mysql Stored Proc named "multBy7"
    // which takes an IN parameter, Out parameter (the names are important. Match them)
    // Multiply the IN by 7 and return the product thru the OUT parameter

    long lParam = 0;
    using (MySqlConnection lconn = new MySqlConnection(connString))
    {
        lconn.Open();
        using (MySqlCommand cmd = new MySqlCommand())
        {
            cmd.Connection = lconn;
            cmd.CommandText = "multBy7"; // The name of the Stored Proc
            cmd.CommandType = CommandType.StoredProcedure; // It is a Stored Proc

            // Two parameters below. An IN and an OUT (myNum and theProduct, respectively)
            cmd.Parameters.AddWithValue("@myNum", theNum); // lazy, not specifying ParameterDirection.Input;
            cmd.Parameters.AddWithValue("@theProduct", MySqlDbType.Int32);
            cmd.Parameters["@theProduct"].Direction = ParameterDirection.Output; // from System.Data
            cmd.ExecuteNonQuery(); // let it rip
            Object obj = cmd.Parameters["@theProduct"].Value;
            lParam = (Int32)obj;    // more useful datatype
        }
    }
    return (lParam);
}

Lapisan Uji GUI C#:

private void btnTestInOut_Click(object sender, EventArgs e)
{   // This GUI Layer call thru the use of a business object or data layer object (`myDB`)
    long localHere = myDB.MultBySeven(11);
}

Stored Procedure (ambil angka, kalikan 7):

DROP PROCEDURE IF EXISTS multBy7;
DELIMITER $
CREATE PROCEDURE multBy7
(   IN myNum INT,
    OUT theProduct INT
)
BEGIN
    SET theProduct=myNum*7;
END$
DELIMITER ;

Tampilan Debug (baca:berfungsi. 11x7=77):

MySQL Connector 6.9.9.0 / Visual Studio 2015 :

Lihat juga 5.10.1 Menggunakan Tersimpan Rutinitas dari Konektor/Net , usia tidak diketahui.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memelihara ketertiban dalam permintaan MySQL IN

  2. Akses ditolak untuk pengguna ''@'localhost' (menggunakan kata sandi:TIDAK)

  3. Unggah banyak gambar dan simpan jalurnya di basis data

  4. Migrasi Laravel:kunci unik terlalu panjang, bahkan jika ditentukan

  5. Memasukkan ke tabel mysql dan menimpa semua data saat ini