/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="proName">存储过程名</param>
/// <param name="parm">参数</param>
/// <returns></returns> public int add_stores(string proName, SqlParameter[] parm)
{
using (SqlConnection cn = new SqlConnection(strConnection))
{
cn.Open();
SqlCommand cmd = new SqlCommand(proName, cn);
cmd.CommandType = CommandType.StoredProcedure;
foreach (SqlParameter sqlparam in parm)
{
cmd.Parameters.Add(sqlparam);
} cmd.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));//这里是什么意思
cmd.ExecuteNonQuery();
//return cmd.ExecuteNonQuery();
return (int)cmd.Parameters["ReturnValue"].Value;//这里是什么意思
}
}上面代码不知道意思的标志出来了,我删除后,发现代码也没有错..麻烦哪位帮忙解释下,上面那样用,肯定是
有那样用的道理
http://msdn.microsoft.com/zh-cn/library/t547y10h(v=VS.80).aspx
string parameterName,
SqlDbType dbType,
int size,
ParameterDirection direction,
bool isNullable,
byte precision,
byte scale,
string sourceColumn,
DataRowVersion sourceVersion,
Object value
)参数:
parameterName
要映射的参数的名称。 dbType
SqlDbType 值之一。 size
参数的长度。 direction
ParameterDirection 值之一。 isNullable
如果字段的值可为空,则为 true;否则为 false。 precision
要将 Value 解析为的小数点左右两侧的总位数。 scale
要将 Value 解析为的总小数位数。 sourceColumn
源列的名称。 sourceVersion
DataRowVersion 值之一。 value
一个 Object,它是 SqlParameter 的值。
create proc islogin
(
@UserName varchar(255)
)
as
begin
declare @result int
set @result = (select count(1) from table where @UserName=UserName)
if(@result>0)
return 1
else
return 0
end
这样cmd.Parameters["ReturnValue"]就可以接收到return返回过来的值