/// <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;//这里是什么意思                
            }
        }上面代码不知道意思的标志出来了,我删除后,发现代码也没有错..麻烦哪位帮忙解释下,上面那样用,肯定是
有那样用的道理

解决方案 »

  1.   

    SqlParameter (String, SqlDbType, Int32, ParameterDirection, Boolean, Byte, Byte, String, DataRowVersion, Object)  用参数名称、参数的类型、参数的大小、ParameterDirection、参数的精度、参数的小数位数、源列、要使用的 DataRowVersion 和参数的值初始化 SqlParameter 类的新实例。 
    http://msdn.microsoft.com/zh-cn/library/t547y10h(v=VS.80).aspx
      

  2.   

    ReturnValue  参数表示诸如存储过程、内置函数或用户定义函数之类的操作的返回值。  
      

  3.   

    public SqlParameter ( 
    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 的值。
      

  4.   

    比如说一个存储过程
    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返回过来的值
      

  5.   

    ReturnValue 不知道是属于 SQL还是C# 关键字?