存储过程可以有返回值,可以有传出参数。
传出参数的数量没有限制,返回值只能有一个,并且执行return 以后,和其他语言的函数中一样,后面的语句就不会再执行了。所以该怎么用,自己权衡吧。
下面是获取返回值和传出参数的例子:
SqlConnection conn=new SqlConnection ( System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]);
SqlCommand comm = new SqlCommand("ReturnValueTest",conn);
comm.Parameters.Add("@name", SqlDbType.NVarChar,100).Value ="chitu";
comm.Parameters.Add("@returnTest",SqlDbType.Int );
comm.Parameters.Add ("returnValue",SqlDbType.Int);
comm.Parameters["@returnTest"].Direction =ParameterDirection.Output;
comm.Parameters["returnValue"].Direction = ParameterDirection.ReturnValue;
comm.CommandType = CommandType.StoredProcedure;
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
int a =(int) comm.Parameters["@returnTest"].Value;
int b = (int)comm.Parameters["returnValue"].Value;
返回值和传出参数彼此的作用还是无法替代的。