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

时间:2021-10-19 14:45:22 

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;
    }

标签:存储过程返回值,输出参数值
0
投稿

猜你喜欢

  • C# CheckedListBox控件的用法总结

    2023-09-17 13:23:34
  • springboot集成mybatis plus和dynamic-datasource注意事项说明

    2023-12-05 03:54:21
  • java 线程创建多线程详解

    2021-08-06 22:02:22
  • Android开发使用自定义View将圆角矩形绘制在Canvas上的方法

    2021-06-08 01:03:17
  • SpringBoot集成Jpa对数据进行排序、分页、条件查询和过滤操作

    2022-03-06 19:17:50
  • Mybatis Log Plugin的使用方式

    2021-08-27 19:02:31
  • Springboot一个注解搞定返回参数key转换功能

    2022-06-21 00:11:24
  • Java实现导入导出Excel文件的方法(poi,jxl)

    2021-09-13 21:12:35
  • 通过与Java功能上的对比来学习Go语言

    2023-02-18 02:04:53
  • 生成8位随机不重复的数字编号的方法

    2023-11-26 07:00:29
  • spring @schedule注解如何动态配置时间间隔

    2023-07-29 03:51:14
  • Mybatis的Dao层实现原理分析

    2022-08-19 19:00:35
  • Java实现的读取资源文件工具类ResourcesUtil实例【可动态更改值的内容】

    2022-01-15 17:27:12
  • 浅析java移位符的具体使用

    2023-12-21 09:36:13
  • mybatis-plus 扩展批量新增的实现

    2023-07-14 14:24:13
  • Java logback日志的简单使用

    2023-07-15 01:32:33
  • Android中获取网页表单中的数据实现思路及代码

    2021-07-04 19:51:18
  • spring boot RestTemplate 发送get请求的踩坑及解决

    2022-01-19 16:08:09
  • 使用Sharding-JDBC对数据进行分片处理详解

    2021-07-27 23:46:04
  • 详解IDEA使用Maven项目不能加入本地Jar包的解决方法

    2022-07-02 02:20:49
  • asp之家 软件编程 m.aspxhome.com