Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Pytanie o uzasadniony przykład wywołania procedury składowanej C#:MYSQL

Wierzę, że kod i zdjęcia mówią więcej niż kiedykolwiek.

C# DB Layer (DB Layer ma conn jako ciąg połączenia):

// 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);
}

Warstwa testowa C# GUI:

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);
}

Zapisana procedura (weź liczbę, pomnóż przez 7):

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

Widok debugowania (czytaj:działa. 11x7=77):

MySQL Connector 6.9.9.0 / Visual Studio 2015 :

Zobacz także 5.10.1 Używanie Stored Procedury ze złącza/sieci , wiek nieznany.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy powinienem używać trwałego połączenia mysql?

  2. Ciąg znaków ucieczki do użycia w wyszukiwaniu pełnotekstowym MySQL

  3. Jak stworzyć wielodostępną bazę danych ze współdzielonymi strukturami tabel?

  4. mysql 12 godzin do 24 godzin konwersja czasu

  5. Wybierz wiersz i rzędy wokół niego