使用C#代码获取存储过程返回值
废话不多说,直接给大家贴C#代码了。
///<summary>
///执行存储过程,返回"返回值"
///</summary>
///<paramname="storedProcName">存储过程名</param>
///<paramname="parameters">存储过程参数</param>
///<returns>执行存储过程的返回值</returns>
publicstaticintRunProcedureWithReturn(stringstoredProcName,IDataParameter[]parameters)
{
using(SqlConnectionconnection=newSqlConnection(connectionString))
{
intresult;
connection.Open();
SqlCommandcommand=BuildIntCommand(connection,storedProcName,parameters);
command.ExecuteNonQuery();
result=(int)command.Parameters["ReturnValue"].Value;
//Connection.Close();
returnresult;
}
}
///<summary>
///创建SqlCommand对象实例(用来返回一个整数值)
///</summary>
///<paramname="storedProcName">存储过程名</param>
///<paramname="parameters">存储过程参数</param>
///<returns>SqlCommand对象实例</returns>
privatestaticSqlCommandBuildIntCommand(SqlConnectionconnection,stringstoredProcName,IDataParameter[]parameters)
{
SqlCommandcommand=BuildQueryCommand(connection,storedProcName,parameters);
command.Parameters.Add(newSqlParameter("ReturnValue",
SqlDbType.Int,4,ParameterDirection.ReturnValue,
false,0,0,string.Empty,DataRowVersion.Default,null));
returncommand;
}
ps:在C#中调用存储过程中的两种返回值
//存储过程
//createprocauthors_count@outrusintoutput
//as
//declare@authorsint
//select@authors=count(*)fromauthors
//set@outrus=@authors
//return@authors
System.Data.SqlClient.SqlConnectionsqlcon=newSystem.Data.SqlClient.SqlConnection("server=(local);database=pubs;uid=sa;pwd=;");
System.Data.SqlClient.SqlCommandsqlcmd=newSystem.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();
//intres=(int)sqlcmd.ExecuteNonQuery();//此时返回的不是存储过程的返回值,以上只是返回delete,update,insert所影响的行数
sqlcmd.ExecuteNonQuery();
stringres=sqlcmd.Parameters[0].Value.ToString();//这样就可以得到存储过程的返回值
sqlcon.Close();
this.label1.Text="存储过程的返回值是:"+res.ToString();//由return返回
this.label2.Text="存储过程中返回的output值:"+sqlcmd.Parameters[1].Value.ToString();//由output返回热门推荐
10 感恩跨年祝福语大全简短
11 晋城春节祝福语简短英文
12 朋友的孩子祝福语简短
13 简短深沉的生日祝福语
14 音乐生祝福语大全简短
15 立春幽默祝福语简短
16 老师给家长祝福语简短
17 爸妈简短婚礼祝福语大全
18 姓陈简短生日祝福语