日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL 调用存储过程

發布時間:2023/12/10 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 调用存储过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1:存儲過程返回值

View Code public void InputOutputParameters()
{
AdoHelper ado = AdoHelper.CreateHelper(DbProvideType.MySql);

ado.ExecuteNonQuery(conn, CommandType.Text, "CREATE PROCEDURE spTest1( INOUT strVal VARCHAR(50), INOUT numVal INT, OUT outVal INT UNSIGNED ) " +
"BEGIN SET strVal = CONCAT(strVal,'ending'); SET numVal=numVal * 2; SET outVal=99; END");

IDataParameter[] param1 = new IDataParameter[]{
ado.GetParameter("numVal", DbType.Int32, ParameterDirection.InputOutput),
ado.GetParameter("strVal", DbType.String, ParameterDirection.InputOutput),
ado.GetParameter("outVal", DbType.UInt64, ParameterDirection.Output)
};
//存儲過程參數按照名稱對應
param1[1].Value = "beginning";
param1[0].Value = 32;
ado.ExecuteNonQuery(conn, CommandType.StoredProcedure, "spTest1", param1);
Console.ReadLine();
}

2:函數

View Code public void FunctionNoParams()
{
AdoHelper ado = AdoHelper.CreateHelper(DbProvideType.MySql);

ado.ExecuteNonQuery(conn, CommandType.Text, "CREATE FUNCTION fnTest() RETURNS CHAR(50)" +
" LANGUAGE SQL DETERMINISTIC BEGIN RETURN \"Test\"; END");

object obj = ado.ExecuteScalar(conn, CommandType.Text, "SELECT fnTest()");
Console.ReadLine();
} View Code public void CallingStoredFunctionasProcedure()
{
AdoHelper ado = AdoHelper.CreateHelper(DbProvideType.MySql);

ado.ExecuteNonQuery(conn, CommandType.Text, "CREATE FUNCTION fnTest1(valin int) RETURNS INT " +
" LANGUAGE SQL DETERMINISTIC BEGIN return valin * 2; END");

IDataParameter[] param1 = new IDataParameter[]{
ado.GetParameter("?rt", DbType.Int32, ParameterDirection.ReturnValue),
ado.GetParameter("valin", DbType.Int32, 16),
};
//Return 函數必須加?符號
object obj = ado.ExecuteScalar(conn, CommandType.StoredProcedure, "fnTest1", param1);
Console.ReadLine();
}

3:返回記錄集

View Code public void ReturningEmptyResultSet()
{
AdoHelper ado = AdoHelper.CreateHelper(DbProvideType.MySql);

ado.ExecuteNonQuery(conn, CommandType.Text, "CREATE TABLE test21 (id int AUTO_INCREMENT NOT NULL, " +
"Name VARCHAR(100) NOT NULL, PRIMARY KEY(id))");

ado.ExecuteNonQuery(conn, CommandType.Text, "CREATE TABLE test22 (id int AUTO_INCREMENT NOT NULL, " +
"id1 INT NOT NULL, id2 INT NOT NULL, PRIMARY KEY(id))");

ado.ExecuteNonQuery(conn, CommandType.Text, "INSERT INTO test21 (Id, Name) VALUES (1, 'Item1')");
ado.ExecuteNonQuery(conn, CommandType.Text, "INSERT INTO test21 (Id, Name) VALUES (2, 'Item2')");
ado.ExecuteNonQuery(conn, CommandType.Text, "INSERT INTO test22 (Id, Id1, Id2) VALUES (1, 1, 1)");
ado.ExecuteNonQuery(conn, CommandType.Text, "INSERT INTO test22 (Id, Id1, Id2) VALUES (2, 2, 1)");
ado.ExecuteNonQuery(conn, CommandType.Text, "CREATE PROCEDURE spTest2(Name VARCHAR(100), OUT Table1Id INT) " +
"BEGIN SELECT t1.Id INTO Table1Id FROM test21 t1 WHERE t1.Name LIKE Name; " +
"SELECT t3.Id2 FROM test22 t3 WHERE t3.Id1 = Table1Id; END");

IDataParameter[] param1 = new IDataParameter[]{
ado.GetParameter("Name", DbType.String, "Item2"),
ado.GetParameter("Table1Id", DbType.Int32, ParameterDirection.Output)
};
//Return 函數必須加?符號
using (DataSet ds = ado.ExecuteDataset(conn, CommandType.StoredProcedure, "spTest2", param1))
{
Console.ReadLine();
}

}

4:返回二進制

View Code public void BinaryAndVarBinaryParameters()
{
AdoHelper ado = AdoHelper.CreateHelper(DbProvideType.MySql);

ado.ExecuteNonQuery(conn, CommandType.Text, "CREATE PROCEDURE spTest3(OUT out1 BINARY(20), OUT out2 VARBINARY(20)) " +
"BEGIN SET out1 = 'out1'; SET out2='out2'; END");


IDataParameter[] param1 = new IDataParameter[]{
ado.GetParameter("out1", DbType.Object, ParameterDirection.Output),
ado.GetParameter("out2", DbType.Object, ParameterDirection.Output)
};

ado.ExecuteNonQuery(conn, CommandType.StoredProcedure, "spTest3", param1);
Console.ReadLine();
}

總結

1:MySql的存儲過程參數賦值是按照名稱對應的。

2:函數返回值的參數名稱需要額外增加符號?表示是變量。

總結

以上是生活随笔為你收集整理的MySQL 调用存储过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。