一.SqlServer 中

1. 创建表

create table testuser(
id int, --primary key,
names varchar(50),
address varchar(50),
paw varchar(50)
)

2.创建存储过程

create proc testp12(@id int ,@names varchar(50),@address varchar(50),@paw varchar(50))
as
begin
declare @maxid int
if @id is null or @id<5
begin
return -1;
end
--set IDENTITY_INSERT testuser on
insert into testuser(id,names,address,paw)values(@id,@names,@address,@paw)
--set IDENTITY_INSERT testuser off
select @maxid=(select max(id) from testuser)
return @maxid
end

3.c#对应的代码处理

  #region"SqlServer中存储过程Return返回值处理"

        /*
public void getresult(int id, string names, string address, string pwd)
{
string str = " server=192.168.xxx;user id=xx;password=xxxxxxxx;database=xxxxx_xx;min pool size=4;max pool size=4;packet size=3072";
SqlConnection conn = new SqlConnection(str);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "testp12";
cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));
cmd.Parameters["@id"].Value = id;
cmd.Parameters.Add(new SqlParameter("@names", SqlDbType.VarChar, 50));
cmd.Parameters["@names"].Value = names;
cmd.Parameters.Add(new SqlParameter("@address", SqlDbType.VarChar, 50));
cmd.Parameters["@address"].Value = address;
cmd.Parameters.Add(new SqlParameter("@paw", SqlDbType.VarChar, 50));
cmd.Parameters["@paw"].Value = pwd;
cmd.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));
cmd.Parameters["@return"].Direction = ParameterDirection.ReturnValue;
cmd.Connection = conn;
cmd.ExecuteNonQuery();
conn.Close();
Response.Write(cmd.Parameters["@return"].Value.ToString());
Response.Write("<br/>");
Response.Write("hello world"); }*/
#endregion

二.MySQL中

1.创建表

create table testuser(
id int, names varchar(50),
address varchar(50),
paw varchar(50)
)

2.创建函数

create FUNCTION testp12(_id int , _names varchar(50), _address varchar(50), _paw varchar(50) )
RETURNS INT
label_pro: BEGIN
declare _maxid int;
declare returnid int;
if _id is null or _id<5 then
begin
set returnid=-1;
RETURN returnid;
leave label_pro;
end ;
end if;
-- set IDENTITY_INSERT testuser on
insert into testuser(id,`names`,address,paw)values(_id,_names,_address,_paw);
-- set IDENTITY_INSERT testuser off
set _maxid=(select max(id) from testuser);
set returnid=_maxid;
RETURN returnid;
end

3.C#代码实现----函数实现

  #region"函数实现SqlServer中存储过程功能Return"
/// <summary>
/// 函数实现SqlServer中存储过程功能
/// </summary>
/// <param name="id"></param>
/// <param name="names"></param>
/// <param name="address"></param>
/// <param name="pwd"></param> public void getresult(int id, string names, string address, string pwd)
{
string str = "Server=192.168.xxxx;Database=xxxx_xxx; port=xxxx;user id=xxxxx;password= providerName=MySql.Data.MySqlClient";
MySqlConnection conn = new MySqlConnection(str);
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "fnetravel2_db.testp12";
cmd.Parameters.Add(new MySqlParameter("_id", MySqlDbType.Int32));
cmd.Parameters["_id"].Value = id;
cmd.Parameters.Add(new MySqlParameter("_names", MySqlDbType.VarChar, ));
cmd.Parameters["_names"].Value = names;
cmd.Parameters.Add(new MySqlParameter("_address", MySqlDbType.VarChar, ));
cmd.Parameters["_address"].Value = address;
cmd.Parameters.Add(new MySqlParameter("_paw", MySqlDbType.VarChar, ));
cmd.Parameters["_paw"].Value = pwd;
// cmd.Parameters.Add(new MySqlParameter("returnid", MySqlDbType.Int32));
//cmd.Parameters["returnid"].Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add("returnid", MySqlDbType.Int32, );
//设置参数的类型为输出参数,默认情况下是输入,
cmd.Parameters["returnid"].Direction = ParameterDirection.ReturnValue;
cmd.Connection = conn;
cmd.ExecuteNonQuery();
string name = cmd.Parameters["returnid"].Value.ToString();
conn.Close();
Response.Write(name);
Response.Write("<br/>");
Response.Write("hello world"); }
#endregion

4.存储过程实现

create PROCEDURE testp122(in _id int ,in _names varchar(50),in _address varchar(50),in _paw varchar(50),out returnid int )
label_pro:BEGIN
declare _maxid int;
-- declare returnid int;
if _id is null or _id<5 then
begin
set returnid=-1;
leave label_pro;
end ;
end if;
-- set IDENTITY_INSERT testuser on
insert into testuser(id,`names`,address,paw)values(_id,_names,_address,_paw);
-- set IDENTITY_INSERT testuser off
set _maxid=(select max(id) from testuser);
set returnid=_maxid;
end

5.C#代码实现----存储过程

 #region"mysql存储过程实现SqlServer中存储过程功能Return"
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <param name="names"></param>
/// <param name="address"></param>
/// <param name="pwd"></param>
public void getresult(int id, string names, string address, string pwd)
{
string str = "Server=192.168.xxxxxx;Database=xxxxx_dxxxxxxb; port=xxxxx;user id=xxxxx;password= providerName=MySql.Data.MySqlClient";
MySqlConnection conn = new MySqlConnection(str);
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "fnetravel2_db.testp122";
cmd.Parameters.Add(new MySqlParameter("_id", MySqlDbType.Int32));
cmd.Parameters["_id"].Value = id;
cmd.Parameters.Add(new MySqlParameter("_names", MySqlDbType.VarChar, ));
cmd.Parameters["_names"].Value = names;
cmd.Parameters.Add(new MySqlParameter("_address", MySqlDbType.VarChar, ));
cmd.Parameters["_address"].Value = address;
cmd.Parameters.Add(new MySqlParameter("_paw", MySqlDbType.VarChar, ));
cmd.Parameters["_paw"].Value = pwd;
// cmd.Parameters.Add(new MySqlParameter("returnid", MySqlDbType.Int32));
//cmd.Parameters["returnid"].Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add("returnid", MySqlDbType.Int32, );
//设置参数的类型为输出参数,默认情况下是输入,
cmd.Parameters["returnid"].Direction = ParameterDirection.Output;
cmd.Connection = conn;
cmd.ExecuteNonQuery();
string name = cmd.Parameters["returnid"].Value.ToString();
conn.Close();
Response.Write(name);
Response.Write("<br/>");
Response.Write("hello world"); } }
#endregion

看到上面想到是不是SqlServer中也可以实现这个功能,但是测试发现SqlServer中函数不允许insert语句。但是如果函数返回表则是可以的。如这个函数:

CREATE FUNCTION func(@selection int)
RETURNS @table TABLE
(
id char(4) primary key not null,
names nvarchar(4) null
)
AS
BEGIN
IF @selection = 0
INSERT INTO @table SELECT id,names FROM testuser
ELSE
INSERT INTO @table SELECT id,names FROM testuser
Return
END

这些例子都是我实践得到了。
记录一点点,收获一点点。

SqlServer中存储过程 returnC#代码处理以及对应的MySQL如何改写的更多相关文章

  1. Sqlserver中存储过程,触发器,自定义函数(一)

    Sqlserver中存储过程,触发器,自定义函数 1.存储过程有关内容存储过程的定义:存储过程的分类:存储过程的创建,修改,执行:存储过程中参数的传递,返回与接收:存储过程的返回值:存储过程使用游标. ...

  2. SqlServer中存储过程中将Exec的执行结果赋值给变量输出

    原文 SqlServer中存储过程中将Exec的执行结果赋值给变量输出 背景: 遇到这样一种情况:动态向存储过程中传入表名和表的某些属性(这里用到的是主键ID),然后利用这两个变量查出一条数据的某些字 ...

  3. Sqlserver中存储过程,触发器,自定义函数(二)

    Sqlserver中存储过程,触发器,自定义函数: 自定义函数:1.函数类型:2.函数的参数和返回值: 1.函数类型:标量值函数,返回的是一个标量值表值函数:内联表值函数:多语句表值函数. 标量值函数 ...

  4. Sqlserver中存储过程,触发器,自定义函数

    Sqlserver中存储过程,触发器,自定义函数: 1. 触发器:是针对数据库表或数据库的特殊存储过程,在某些行为发生的时候就会被激活 触发器的分类: DML触发器:发生在数据操作语言执行时触发执行的 ...

  5. SQLServer 中存储过程

    SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)存储过程有三种返回:   1.   用return返回数字型数据   2.   用返回参数 ...

  6. SQLServer中存储过程StoredProcedure创建及C#调用(转)

    此文作为入门了解用,转自http://www.2cto.com/database/201502/378260.html 存储过程就是已经编译好的.优化过的放在数据库服务器中的一些SQL语句:可供应用程 ...

  7. sqlserver 中存储过程的基础知识记录

    1.什么是存储过程? 存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令. 通俗来讲:存储过程其实就是能完成一定操作的一组SQL语句. 2.为什么要用存储过程? 1)存储过程只在创建时进行 ...

  8. Sqlserver中存储过程和游标的一些使用例子

    /*带输入输出参数存储过程*/ ALTER PROCEDURE pro_test2 @userID INT, @maxUserID INT OUTPUT, @countUser INT OUTPUT ...

  9. SqlServer和MySQL中存储过程out返回值处理C#代码

    1.SqlServer中out处理 C#代码 #region"SqlServer中存储过程处理out返回值" //public void getdata() //{ // stri ...

随机推荐

  1. OpenVPN GUI出现CreateProcess错误的解决方法

    问题描述     启动 OpenVPN GUI 时失败,提示“CreateProcess Failed, exe=’X:\XXXXX\OpenVPN\bin\openvpn.exe’ cmdline= ...

  2. doc命令下查看java安装路径

    在doc窗口下使用命令:set  java_home 即可查看.

  3. Python3.x:代理ip刷评分

    Python3.x:代理ip刷评分 声明:仅供为学习材料,不允许用作商业用途: 一,功能: 针对某网站对企业自动刷评分: 网站:https://best.zhaopin.com/ 二,步骤: 1,获取 ...

  4. angularjs中的jqlite的认识理解及操作使用

    刚了解angularjs时,就知道它有个内嵌的轻量级的jquery:jqLite,那时候常于jQuery分不清,其实它们是不一样的.jqLite中,通过angular.element(param)获得 ...

  5. MySQL——修改数据表

    1.添加单列: ALERT TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST|AFTER col_name 其中tbl_nam ...

  6. Commons FileUpload

    转载自(https://my.oschina.net/u/2000201/blog/486744) 1    概述 Commons FileUpdate包很容易为你的Servlet和web应用程序添加 ...

  7. RabbitMQ延迟队列

    rabbitmq延迟队列 rabbitmq实现延迟队列用了rabbitmq-delayed-message-exchange插件,需要提前安装,并启用. 原理 其原理是通过Exchange来实现延迟功 ...

  8. 爬虫之Fiddler抓取HTTPS设置

    Fiddler抓取HTTPS设置 启动Fiddler,打开菜单栏中的 Tools > Telerik Fiddler Options,打开“Fiddler Options”对话框. 对Fiddl ...

  9. JDK 中的监控与故障处理工具-03 (jstat)

    jstat : JVM statistics monitoring tool jstat 命令可以监控 JVM 虚拟机各种运行时状态信息, 包括 内存状态 ,垃圾回收 ,类的装载等信息. jstat ...

  10. 使用淘宝的npm代理下载模块

    npm install node-sass --registry=http://registry.npm.taobao.org