Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

संग्रहीत कार्यविधि को कॉल करने का वैध उदाहरण मांगना C#:MYSQL

मेरा मानना ​​है कि कोड और तस्वीरें मुझसे कहीं ज्यादा कहती हैं।

C# DB लेयर (DB लेयर में conn है) एक कनेक्शन स्ट्रिंग के रूप में):

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

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

संग्रहित प्रक्रिया (एक संख्या लें, 7 से गुणा करें):

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

डीबग व्यू (पढ़ें:यह काम करता है। 11x7=77):

MySQL Connector 6.9.9.0 / Visual Studio 2015 :

यह भी देखें 5.10.1 Stored का उपयोग करना कनेक्टर/नेट से रूटीन , उम्र अज्ञात है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अक्षांश और देशांतर के साथ निकटतम स्थान

  2. हाइबरनेट, MySQL और रिपीट नाम की टेबल - अजीब व्यवहार

  3. विदेशी कुंजी का उपयोग करके 2 टेबल से सभी डेटा कैसे प्राप्त करें

  4. डोकर mysql कंटेनर से कनेक्ट नहीं हो सकता

  5. केस असंवेदनशील MySQL संयोजन की तलाश में जहां एक !=ä