//转自网络,先留个底

1.获取Return返回值

//存储过程
//Create PROCEDURE MYSQL
//     @a int,
//     @b int
//AS
//     return @a + @b
//GO
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());
conn.Open();
SqlCommand MyCommand = new SqlCommand("MYSQL", conn);
MyCommand.CommandType = CommandType.StoredProcedure;
MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
MyCommand.Parameters["@a"].Value = 10;
MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
MyCommand.Parameters["@b"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));
MyCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@return"].Value.ToString());

2.获取Output输出参数值

//存储过程
//Create PROCEDURE MYSQL
//     @a int,
//     @b int,
//     @c int output
//AS
//     Set @c = @a + @b
//GO
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());
conn.Open();
SqlCommand MyCommand = new SqlCommand("MYSQL", conn);
MyCommand.CommandType = CommandType.StoredProcedure;
MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
MyCommand.Parameters["@a"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
MyCommand.Parameters["@b"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter("@c", SqlDbType.Int));
MyCommand.Parameters["@c"].Direction = ParameterDirection.Output;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@c"].Value.ToString());

C#接收存储过程返回值:

     public static int User_Add(User us){int iRet;SqlConnection conn = new SqlConnection(Conn_Str);SqlCommand cmd = new SqlCommand("User_Add", conn);cmd.CommandType = CommandType.StoredProcedure;cmd.Parameters.AddWithValue("@UName", us.UName);cmd.Parameters.AddWithValue("@UPass", us.UPass);cmd.Parameters.AddWithValue("@PassQuestion", us.PassQuestion);cmd.Parameters.AddWithValue("@PassKey", us.PassKey);cmd.Parameters.AddWithValue("@Email", us.Email);cmd.Parameters.AddWithValue("@RName", us.RName);cmd.Parameters.AddWithValue("@Area", us.Area);cmd.Parameters.AddWithValue("@Address", us.Address);cmd.Parameters.AddWithValue("@ZipCodes", us.ZipCodes);cmd.Parameters.AddWithValue("@Phone", us.Phone);cmd.Parameters.AddWithValue("@QQ", us.QQ);cmd.Parameters.Add("@RETURN_VALUE", "").Direction = ParameterDirection.ReturnValue;       try{conn.Open();cmd.ExecuteNonQuery();iRet = (int)cmd.Parameters["@RETURN_VALUE"].Value;}catch (SqlException ex){throw ex;}finally{conn.Close();}return iRet;}

C#接收存储过程输出参数:

    public static decimal Cart_UserAmount(int UID){decimal iRet;SqlConnection conn = new SqlConnection(Conn_Str);SqlCommand cmd = new SqlCommand("Cart_UserAmount", conn);cmd.CommandType = CommandType.StoredProcedure;cmd.Parameters.AddWithValue("@UID", UID);cmd.Parameters.Add("@Amount", SqlDbType.Decimal).Direction=ParameterDirection.Output;try{conn.Open();cmd.ExecuteNonQuery();iRet = (decimal)cmd.Parameters["@Amount"].Value;}catch (SqlException ex){throw ex;}finally{conn.Close();}return iRet;}

C# 中调用 MySQL 存储过程并传递参数和获取返回值

CallableStatement PreparedFunc = MyConnect.prepareCall("{ ? = call isodd( ? ) }");
PreparedFunc.registerOutParameter(1, Types.INTEGER);PreparedFunc.setInt(1, aNumber);
PreparedFunc.execute();if (PreparedFunc.getInt(1) == 1)System.out.println(aNumber +"is odd");
elseSystem.out.println(aNumber +"is even");

C#操作Mysql数据库的存储过程

//MySql过程
//CREATE PROCEDURE JugePasswordCorrect(in username VARCHAR(64), in pwd VARCHAR(32))
//BEGIN
//SELECT COUNT(*) FROM acctable WHERE account=username AND password=pwd;
//END;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;namespace TestMysql2
{class Program{static void Main(string[] args){MySqlConnection conn = new MySqlConnection("Database=test;Data Source=localhost;User Id='test';Password='test';pooling=true;Minimum Pool Size=5;Maximum Pool Size=10;CharSet=utf8;port=3306;Connect Timeout=3600");conn.Open();MySqlCommand cmd = new MySqlCommand("JugePasswordCorrect", conn);cmd.CommandType = System.Data.CommandType.StoredProcedure;cmd.Parameters.Add("?username", MySqlDbType.VarChar, 64);cmd.Parameters["?username"].Value = "test";cmd.Parameters.Add("?pwd", MySqlDbType.VarChar, 32);cmd.Parameters["?pwd"].Value = "test";int rows = Convert.ToInt32(cmd.ExecuteScalar());if (rows > 0){// 密码正确
            }conn.Close();}}
}

其他写法:

    myco = new MySqlConnection(strconn);myco.Open();mycomm = new MySqlCommand("GetRecordCount", myco);mycomm.CommandType = CommandType.StoredProcedure;MySqlParameter[] para = new MySqlParameter[]{new MySqlParameter("@tbName",MySqlDbType.VarChar,20),new MySqlParameter("@strWhere",MySqlDbType.VarChar,500)};para[0].Value = "uinfo";para[1].Value = strWhere;mycomm.Parameters.AddRange(para);MySqlDataReader mydr=mycomm.ExecuteReader();while(mydr.Read()){pageCount = System.Convert.ToInt32(mydr["countStr"].ToString()) ;pageCountMod = pageCount % pageSize;pageCount= pageCount/ pageSize;if (pageCount == 0){//pageCount++;
        }else{if (pageCountMod != 0){pageCount++;}}pageCountLab.Text = pageCount.ToString();}

/*其他:

参数有@开头的,也有?开头的.
MySqlDataAdapter.fill 返回集

转载于:https://www.cnblogs.com/xiii/p/5162038.html

C#获取存储过程返回值和输出参数值的方法相关推荐

  1. 获取存储过程返回值及代码中获取返回值

    获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...

  2. 获取存储过程返回值及代码中获取返回值(转)

    获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...

  3. python return返回值在计算机内的存储形式_Python如何执行存储过程,获取存储过程返回值...

    在Pathon中如何执行存储过程呢?可以使用如下方法: 存储过程定义基本如下: ALTER procedure [dbo]. [mysp] @Station varchar ( 50), @SN va ...

  4. dotnet 获得存储过程返回值和输出参数有什么不同 @@IDENTITY SCOPE_IDENTITY()

    存储过程1: Create PROCEDURE CreateNewUser @UserName varchar(50), @Password varchar(50), @Description var ...

  5. 【转】SQL SERVER 获取存储过程返回值

    1.OUPUT参数返回值 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_buyerid int , @o_id bigint OUTPUT ) AS BEG ...

  6. 利用DAAB 获取存储过程返回值的方法

    方法一  public static AdoHelper helper = AdoHelper.CreateHelper("sqlDA");     public static s ...

  7. 存储过程系列之存储过程返回值总结

    sql存储过程返回值总结 1. 存储过程没有返回值的情况(即存储过程语句中没有return之类的语句)用方法 int count = ExecuteNonQuery(..)执行存储过程其返回值只有两种 ...

  8. js回调函数获取异步返回值

    js回调函数获取异步返回值 1.尝试获取异步返回值 function test(){var res = 0;setTimeout(function(){res = 1;},1000)return re ...

  9. shell获取函数返回值

    1.使用return返回结果 #/bin/bash function test(){return "123" } test echo $? 注意: 1.必须使用$?获取函数返回值, ...

最新文章

  1. 8 ServletContext
  2. Debian8.8解决双系统访问windows磁盘时,有时能成功挂载,有时不能成功挂载的情况...
  3. Spring Cloud笔记
  4. 计算机组成原理 陈泽,江西师范大学-计算机组成原理的期末复习.doc
  5. viewobject_只读ViewObject和声明性SQL模式
  6. 我参与的一个项目总结
  7. 表贴电阻尺寸与什么有关_0欧电阻存在的意义?看了就懂了
  8. 武魂觉醒s系列服务器,斗罗大陆武魂觉醒斗罗大陆9服开服时间表_斗罗大陆武魂觉醒新区开服预告_第一手游网手游开服表...
  9. 计算机网络-路由器广域网配置
  10. css实现LED液晶数码字体
  11. 《数学之美》 读书笔记
  12. 【PAT】A1107 Social Clusters (30分)
  13. ForgivingExceptionHandler: An unexpected connection driver error occured (Exception message: Socket
  14. c语言isfinite用法,C# Double.IsFinite()用法及代码示例
  15. 常量指针(Pointer to const)与指针常量(Const pointer)
  16. Java 中对象数组的简单存入与取出
  17. java无法重命名文件_巧妙地解决Java文件重命名失败的问题
  18. java公路车组装教程_骑行入门:怎样组装一辆自行车——零部件的准备
  19. 计划写Redis的源码分析笔记
  20. k-means聚类的传统算法和优化

热门文章

  1. [转]Hyper-V功能大跃进 或引发市场洗牌
  2. 分布式服务框架Dubbo疯狂更新!阿里开源要搞大事情?
  3. struct tm 和 time_t
  4. 漫谈BCH Token方案
  5. 基于比特币现金BCH二层网络能实现区块链2.0以太坊的智能化吗
  6. 在freebsd下安装vim(Debian下类似)
  7. Windows Server 2008壮烈牺牲
  8. 微信小程序 = 滚动页面
  9. 运维中的日志切割操作梳理(Logrotate/python/shell脚本实现)
  10. 人工智能筑起网络安全“铜墙铁壁”