c# 调用mysql存储过程 返回值_使用C#代码获取存储过程返回值

废话不多说,直接给大家贴C#代码了。

///

/// 执行存储过程,返回" 返回值"

///

/// 存储过程名

/// 存储过程参数

/// 执行存储过程的返回值

public static int RunProcedureWithReturn(string storedProcName, IDataParameter[] parameters)

{

using (SqlConnection connection = new SqlConnection(connectionString))

{

int result;

connection.Open();

SqlCommand command = BuildIntCommand(connection, storedProcName, parameters);

command.ExecuteNonQuery();

result = (int)command.Parameters["ReturnValue"].Value;

//Connection.Close();

return result;

}

}

///

/// 创建 SqlCommand 对象实例(用来返回一个整数值)

///

/// 存储过程名

/// 存储过程参数

/// SqlCommand 对象实例

private static SqlCommand BuildIntCommand(SqlConnection connection, string storedProcName, IDataParameter[] parameters)

{

SqlCommand command = BuildQueryCommand(connection, storedProcName, parameters);

command.Parameters.Add(new SqlParameter("ReturnValue",

SqlDbType.Int, 4, ParameterDirection.ReturnValue,

false, 0, 0, string.Empty, DataRowVersion.Default, null));

return command;

}

ps:在C#中调用存储过程中的两种返回值

//存储过程

//create proc authors_count @outrus int output

//as

//declare @authors int

//select @authors=count(*) from authors

//set @outrus=@authors

//return @authors

System.Data.SqlClient.SqlConnection sqlcon=new System.Data.SqlClient.SqlConnection("server=(local);database=pubs;uid=sa;pwd=;");

System.Data.SqlClient.SqlCommand sqlcmd=new System.Data.SqlClient.SqlCommand("authors_count",sqlcon);

sqlcmd.CommandType=System.Data.CommandType.StoredProcedure;

// sqlcmd.CommandText="authors_count";

// sqlcmd.Connection=sqlcon;

sqlcmd.Parameters.Add("@rus",System.Data.SqlDbType.Int);

sqlcmd.Parameters.Add("@outrus",System.Data.SqlDbType.Int);

sqlcmd.Parameters[0].Direction=System.Data.ParameterDirection.ReturnValue;

sqlcmd.Parameters[1].Direction=System.Data.ParameterDirection.Output;

sqlcon.Open();

//int res=(int)sqlcmd.ExecuteNonQuery();//此时返回的不是存储过程的返回值,以上只是返回delete,update,insert所影响的行数

sqlcmd.ExecuteNonQuery();

string res=sqlcmd.Parameters[0].Value.ToString();//这样就可以得到存储过程的返回值

sqlcon.Close();

this.label1.Text="存储过程的返回值是:"+res.ToString();//由return 返回

this.label2.Text="存储过程中返回的output值:"+sqlcmd.Parameters[1].Value.ToString();//由output返回

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

闫小旺

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值