sql >> Databáze >  >> RDS >> Mysql

Požadavek na legitimní příklad volání uložené procedury C#:MYSQL

Věřím, že kód a obrázky řeknou víc, než kdy já.

C# DB Layer (DB Layer má conn jako připojovací řetězec):

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

Testovací vrstva 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);
}

Uložená procedura (vezměte číslo, vynásobte 7):

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

Zobrazení ladění (čtěte:funguje. 11x7=77):

MySQL Connector 6.9.9.0 / Visual Studio 2015 :

Viz také 5.10.1 Použití uložených Rutiny z Connector/Net , věk neznámý.



  1. Způsoby, jak snadno znovu sestavit hlavní databázi na serveru SQL

  2. Analýza tnsnames.ora ve Visual C# 2008

  3. jak mohu provést příkaz CMD v konzolové aplikaci c #?

  4. Jak třídit seznam polí v cik-caku v PHP?