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:函数返回值的参数名称需要额外增加符号?表示是变量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

佳博热敏条码打印机修改ip_高赋码热转印打印和热敏打印区别

在热转印打印中,热敏打印头给色带加热,油墨熔化在标签材料上以形成图案。色带材料被介质吸收,图案构成了标签的一部分。该技术提供了其他按需式打印技术无法匹敌的图案质量和耐久性。与热敏打印机相比,热转印打印机可接受更多品种…

cocos2d的常用动作及效果总结之五:Animation

这一篇是讲一下如何在cocos2d中实现动画。 实现动画的步骤: 加载帧生成动画对象运行动画加载帧我用过两种方式: 第一种是使用.plist文件,通过CCSpriteFrameCache读取动画帧,并加载到CCAnimation对象中,如下&#xff1a…

雷鸟html签名设置,thunderbird 使用OpenPGP加解密邮件

一、添加插件Enigmail二、进行密钥管理,并创建->新密钥对三、选择账户,选择有无密码,创建密钥。根据提示选择是否要撤销文件。选择无密码创建密钥对速度快。最好选择生成撤销证书,在以后密钥对无用时告诉密钥服务器撤销无效公钥…

3ds Max 2018 在安装后无法启动或出现不稳定

问题: 安装 3ds Max 2018 后,软件无法正常启动,或在打开后不久出现不稳定和崩溃。 原因: 有多种原因可能会导致这些错误: ▪ 3ds Max、Windows 更新和 ProSound.dlc 声音驱动程序之间发生冲突; ▪ Windows …

c++中内敛函数_C/C++求职者必备 23 道面试题,一道试题一份信心

1、 Static有什么用途?(1)函数体内static变量的作用范围是该函数体,该变量的内存只被分配一次,因此它的值在下次调用时不变; (2)模块内的static全局变量同样只能在该模块内的函数访问和调用,不能被模块外的其他函数访问…

启动图一键生成工具_一键即运行!清华团队推出图深度学习工具包CogDL v0.1

一行代码命令可以做什么?“一行命令可以实现‘一条龙’运行实验。”访问 http://github.com/THUDM/cogdl 一键体验!近年来,结构化数据的表示学习备受业界关注与热捧,图神经网络成为处理相关工作的有力工具,基于随机游走…

工业机器人 扬州 江都_扬州市14家企业获批2019年江苏省示范智能车间

近日,我省正式发布2019年江苏省示范智能车间名单,所谓智能车间,是指将机器人、智能设备、信息技术三者在制造过程中全流程融合,实现自动决策、精确执行命令、精益管理。2019年,扬州市潍柴扬柴、新联汽车、江淮汽车等14…

pcb设计单点接地示意图_答案:关于PCB 的EMC设计知识考卷

(评分标准:本试卷作为培训效果评价依据,试卷满分为100分) ____________________________________________________________________________________________________________ 一、 判断题(每题2分) 1.塑料外壳产品的EMC性能只取决于PCB设计,与电缆的位置和PCB之间的…

深大计算机科学与技术在广东省,广东考生请注意:深圳大学2021年计划本省总招生人数比例超过75%!...

深圳大学,简称“深大”由于位于我国改革开放的经济前沿发展阵地——广东省深圳市,自1983年建校以来,学校发展迅猛,根据去年的招生录取分数来看,仅低于广东四所211高校(中山大学、华南理工大学、暨南大学、华南师范大学…

协方差公式性质证明过程_论文推荐 | 刘志平:等价条件平差模型的方差-协方差分量最小二乘估计方法...

《测绘学报》构建与学术的桥梁 拉近与权威的距离等价条件平差模型的方差-协方差分量最小二乘估计方法刘志平1, 朱丹彤1, 余航1, 张克非1,21. 中国矿业大学环境与测绘学院, 江苏 徐州 221116; 2. 皇家墨尔本理工大学空间科学研究中心, 澳大利亚 维多利亚州 墨尔本 3001收稿日期&…

Eclipse使用Team explorer everywhere进行代码管理

Visual Studio Team Explorer Everywhere 2010主要包含两大组件,参考图: ●Team Explorer Everywhere:它是Eclipse的Plug-in组件,让Eclipse能够使用TFS的版本管控、工作项目(Work Item)、Team Build、以及报表等功能,…

mysql服务不能启动的几大原因

mysql服务不能启动的几大原因 1.存放数据库的路径的属主以及属组不是mysql 此时把/mydata/data目录的属主以及属组改为mysql即可:# chown –R mysql.mysql /mydata/data是不是可以启动mysql服务了呢!2.有关mysql的进程没有结束掉导致mysql服务不能正常启…

计算机无法安装系统,一招就能搞定“这台电脑无法安装 Windows 11”的解决方法...

微软已经正式发布了 Windows 11。虽然公开发布为今年晚些时候,但微软的 PC Health Check (中文名电脑健康状况检查)应用程序允许 Windows 10 用户检查他们的计算机是否满足安装 Windows 11 的最低系统要求。不幸的是,许多用户运行 PC Health Check 应用程…

7开启uasp协议_【环海解读】新版通关无纸化协议签约amp;报关代理委托发起和确认操作流程...

最近,小编经常收到咨询,作为进出口货物收发货人,如何使用新版通关无纸化协议签约系统和报关代理委托系统呢?客官莫急,今日就为大家提供一份科普篇,让您顺利完成报关前准备工作。下面小编将对登录及操作步骤…

【英语天天读】I want I do I get

There’s a great song out there by Jimmy Cliff, one of reggae’s top artists, that in six words summarizes just how you succeed in life: I want I do I get. These six words are a very powerful way of connecting what you want with what you will achieve. Firs…

html怎么引入本地css文件路径,html如何引入css文件

引入方法:1、使用link标签引入,语法“”;2、在stylet标签中,使用“import”规则引入,语法“import url(css文件地址)”。本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。html引入css文…

数据库查询前十条数据_西门子PLC1200组态王-Access数据库-⑨数据库查询

西门子PLC1200-组态王跟Access数据库--⑨数据库查询组态王记录不同类型变量到数据库,和数据库数据查询到组态王界面1.0 从左边栏选择表格模板,level1和level2分别设置整型和布尔型2.0 设置记录本,要对应level1和level2,配置一个整…

win10计算机本地无法连接,win10无法连接到这个网络怎么办_win10无法连接到这个网络如何解决...

我们在操作win10系统电脑的时候,通常都需要先进行网络连接才能够浏览网页,但是最近有用户在使用win10系统电脑的时候出现了无法连接这个网络的提示,那么win10无法连接到这个网络怎么办呢?下面就来教大家win10无法连接到这个网络的…

Restful对于URL的简化

REST是英文representational state transfer(表象性状态转变)或者表述性状态转移,它是web服务的一种架构风格。使用HTTP,URI,XML,JSON,HTML等广泛流行的标准和协议;轻量级,跨平台,跨…

从文件中读出数据显示在表格中_玩转表格:如何在Word表格中进行数据计算?...

Word文档中的表格也可以进行数据运算的。例如,要对表格中第1季度的数据进行求和计算时,具体操作方法如下。1第1步:将光标置于要输入合计值的单元格中,切换到【表格工具】栏中的【布局】选项卡中,在【数据】组中单击【公…