使用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 妈妈生日祝福语简短励志