日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

如何在MySQL中使用C#編寫自定義存儲過程和函數

引言:
MySQL是一個廣泛使用的開源數據庫管理系統,而C#是一種常用的面向對象的編程語言。在開發過程中,我們經常需要使用數據庫存儲過程和函數來提高代碼的復用性和性能。本文將介紹如何在MySQL數據庫中使用C#編寫自定義存儲過程和函數,并提供具體的代碼示例。

一、存儲過程
存儲過程是一組為執行特定任務的SQL語句集合。下面將詳細介紹如何在MySQL中使用C#編寫自定義存儲過程。

1.1 創建存儲過程
首先,在MySQL中創建一個新的數據庫并創建一個名為”TestDB”的數據表。表結構如下所示:

CREATE TABLE TestTable (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(100) DEFAULT NULL,
age int(11) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

接下來,在Visual Studio中創建一個新的C#控制臺應用程序。通過MySQL連接字符串連接到數據庫,然后執行以下代碼來創建一個名為”GetAllData”的存儲過程:

using MySql.Data.MySqlClient;

namespace MySQLExample
{

class Program
{
    static void Main(string[] args)
    {
        string connectionString = "server=localhost;username=root;password=password;database=TestDB";
        MySqlConnection connection = new MySqlConnection(connectionString);
        MySqlCommand cmd = new MySqlCommand();
        cmd.Connection = connection;

        cmd.CommandText = "CREATE PROCEDURE GetAllData() " +
                           "BEGIN " +
                           "SELECT * FROM TestTable; " +
                           "END";

        try
        {
            connection.Open();
            cmd.ExecuteNonQuery();
            Console.WriteLine("存儲過程創建成功!");
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            connection.Close();
        }

        Console.ReadKey();
    }
}

登錄后復制

}

以上代碼通過執行CREATE PROCEDURE語句來創建了一個名為”GetAllData”的存儲過程。這個存儲過程在數據庫中可以直接調用,將返回TestTable表中的所有數據。

1.2 調用存儲過程
接下來,我們來演示如何在C#中調用剛剛創建的存儲過程。

在上一步驟的基礎上,我們可以編寫以下代碼來調用存儲過程并獲取返回的數據:

using MySql.Data.MySqlClient;

namespace MySQLExample
{

class Program
{
    static void Main(string[] args)
    {
        string connectionString = "server=localhost;username=root;password=password;database=TestDB";
        MySqlConnection connection = new MySqlConnection(connectionString);
        MySqlCommand cmd = new MySqlCommand();
        cmd.Connection = connection;

        cmd.CommandText = "GetAllData";
        cmd.CommandType = CommandType.StoredProcedure;

        try
        {
            connection.Open();
            MySqlDataReader reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                Console.WriteLine(reader["id"].ToString() + " " + reader["name"].ToString() + " " + reader["age"].ToString());
            }

            reader.Close();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            connection.Close();
        }

        Console.ReadKey();
    }
}

登錄后復制

}

以上代碼通過執行”GetAllData”存儲過程來獲取TestTable表中的所有數據,并將結果輸出到控制臺。

二、函數
函數是一個可重用的SQL代碼塊,它將輸入參數的值計算后返回一個值。下面將詳細介紹如何在MySQL中使用C#編寫自定義函數。

2.1 創建函數
在MySQL中創建一個名為”GetAverageAge”的函數,它將計算TestTable表中所有人的平均年齡并返回。

創建函數的代碼如下所示:

CREATE FUNCTION GetAverageAge() RETURNS INT(11)
BEGIN
DECLARE avg_age INT(11);
SELECT AVG(age) INTO avg_age FROM TestTable;
RETURN avg_age;
END

2.2 調用函數
通過以下代碼來調用剛剛創建的函數并獲取返回的值:

using MySql.Data.MySqlClient;

namespace MySQLExample
{

class Program
{
    static void Main(string[] args)
    {
        string connectionString = "server=localhost;username=root;password=password;database=TestDB";
        MySqlConnection connection = new MySqlConnection(connectionString);
        
        try
        {
            connection.Open();
            MySqlCommand cmd = new MySqlCommand("SELECT GetAverageAge()", connection);
            int averageAge = Convert.ToInt32(cmd.ExecuteScalar());

            Console.WriteLine("平均年齡:" + averageAge);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            connection.Close();
        }

        Console.ReadKey();
    }
}

登錄后復制

}

以上代碼通過執行SELECT GetAverageAge()語句來調用”GetAverageAge”函數,并獲取函數返回的平均年齡。

結論:
本文介紹了如何在MySQL中使用C#編寫自定義存儲過程和函數,并提供了具體的代碼示例。存儲過程和函數可以提高代碼的復用性和性能,適用于各種復雜的數據處理需求。通過使用C#連接MySQL數據庫,我們可以靈活地進行存儲過程和函數的編寫和調用,從而充分發揮MySQL數據庫的優勢。

以上就是如何在MySQL中使用C#編寫自定義存儲過程和函數的詳細內容,更多請關注www.92cms.cn其它相關文章!

分享到:
標簽:函數 如何在 存儲過程 編寫 自定義
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定