using (SqlConnection con = new SqlConnection(Constant.Connstr))
            {
                SqlCommand comm = new SqlCommand("[dbo].[pro_distributionDrinkChick]", con);
                comm.CommandType = CommandType.StoredProcedure;
                comm.Parameters.AddWithValue("@DrinkId", 1);
                comm.Parameters.AddWithValue("@RegionId", 1);
                comm.Parameters.AddWithValue("@OrderId", 2);
                comm.Parameters.AddWithValue("@ItemsAmout", 3);
                comm.Parameters.Add(new SqlParameter("@aaa", SqlDbType.Int,0, ParameterDirection.Output));                con.Open();       //各位帮忙改改这里的参数应该怎么的写啊~
                 //主要是想得到返回值
                int pkid = (int)comm.Parameters["@aaa"].Value;
                con.Close();
            }

解决方案 »

  1.   


    SqlParameter parm = new SqlParameter("@aaa",SqlDbType.Int);
    parm.Direction = ParameterDirection.Output;
    comm.Parameters.Add(parm);
      

  2.   

    可以参照PetShop 里dataaccess的写法封装一个。
      

  3.   

    #region 检索数据
            /// <summary>
            /// 获取民族代码
            /// </summary>
            /// <param name="PageIndex">页码</param>
            /// <param name="OrderBy">排序字段</param>
            /// <param name="Where">条件</param>
            /// <returns>结果集</returns>
            public DataSet GetList(int PageIndex, string OrderBy, string Where)
            {
                try
                {
                    SqlParameter[] parameters = {
                                        new SqlParameter("@tbname", SqlDbType.NVarChar),
                                        new SqlParameter("@FieldKey", SqlDbType.NVarChar),
                                        new SqlParameter("@PageCurrent", SqlDbType.Int),
                                        new SqlParameter("@PageSize", SqlDbType.Int),
                                        new SqlParameter("@FieldShow", SqlDbType.NVarChar),
                                        new SqlParameter("@FieldOrder", SqlDbType.NVarChar),
                                        new SqlParameter("@Where", SqlDbType.NVarChar),
                                        new SqlParameter("@RecordCount", SqlDbType.Int),
                                        new SqlParameter("@PageCount", SqlDbType.Int)                   
                                   };
                    parameters[0].Value = "sysj";
                    parameters[1].Value = "ksh";
                    parameters[2].Value = PageIndex;
                    parameters[3].Value = 10;
                    parameters[4].Value = "*";
                    parameters[5].Value = OrderBy;
                    parameters[6].Value = Where;                parameters[7].Direction = ParameterDirection.Output;
                    parameters[8].Direction = ParameterDirection.Output;

                    DataTable dt1 = DbHelperSQL.RunProcedure("SP_PageList", parameters, "table").Tables[0];
                    //获取out型返回值
                    string sss = parameters[7].Value.ToString();
                    string ssss = parameters[8].Value.ToString();
                    DataTable dt = new DataTable();
                    dt.Columns.Add("Counts", typeof(string));
                    dt.Columns.Add("Pages", typeof(string));                DataRow dr = dt.NewRow();
                    dr["Counts"] = sss;
                    dr["Pages"] = ssss;                dt.Rows.Add(dr);                DataSet ds = new DataSet();
                    ds.Tables.Add(dt1.Copy());
                    ds.Tables.Add(dt.Copy());                return ds;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            #endregion        #region 检索数据
      

  4.   

    #region 检索数据
            /// <summary>
            /// 获取民族代码
            /// </summary>
            /// <param name="PageIndex">页码</param>
            /// <param name="OrderBy">排序字段</param>
            /// <param name="Where">条件</param>
            /// <returns>结果集</returns>
            public DataSet GetList(int PageIndex, string OrderBy, string Where)
            {
                try
                {
                    SqlParameter[] parameters = {
                                        new SqlParameter("@tbname", SqlDbType.NVarChar),
                                        new SqlParameter("@FieldKey", SqlDbType.NVarChar),
                                        new SqlParameter("@PageCurrent", SqlDbType.Int),
                                        new SqlParameter("@PageSize", SqlDbType.Int),
                                        new SqlParameter("@FieldShow", SqlDbType.NVarChar),
                                        new SqlParameter("@FieldOrder", SqlDbType.NVarChar),
                                        new SqlParameter("@Where", SqlDbType.NVarChar),
                                        new SqlParameter("@RecordCount", SqlDbType.Int),
                                        new SqlParameter("@PageCount", SqlDbType.Int)                   
                                   };
                    parameters[0].Value = "sysj";
                    parameters[1].Value = "ksh";
                    parameters[2].Value = PageIndex;
                    parameters[3].Value = 10;
                    parameters[4].Value = "*";
                    parameters[5].Value = OrderBy;
                    parameters[6].Value = Where;                parameters[7].Direction = ParameterDirection.Output;
                    parameters[8].Direction = ParameterDirection.Output;                DataTable dt1 = DbHelperSQL.RunProcedure("SP_PageList", parameters, "table").Tables[0];
                    //获取out型返回值
                    string sss = parameters[7].Value.ToString();
                    string ssss = parameters[8].Value.ToString();                DataTable dt = new DataTable();
                    dt.Columns.Add("Counts", typeof(string));
                    dt.Columns.Add("Pages", typeof(string));                DataRow dr = dt.NewRow();
                    dr["Counts"] = sss;
                    dr["Pages"] = ssss;                dt.Rows.Add(dr);                DataSet ds = new DataSet();
                    ds.Tables.Add(dt1.Copy());
                    ds.Tables.Add(dt.Copy());                return ds;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            #endregion        #region 检索数据
      

  5.   

           public int AddTeacher(Teacher teacher)
           {
               int number;
               using (SqlConnection conn = new SqlConnection(connString)) 
               {
                   SqlCommand Command = new SqlCommand(dboOwner + ".usp_InsertTeacher", conn);
                   Command.CommandType = CommandType.StoredProcedure;
                   Command.Parameters.Add("@LoginId", SqlDbType.VarChar, 50).Value = teacher.LoginId;
                   Command.Parameters.Add("@LoginPwd", SqlDbType.VarChar, 50).Value = teacher.LoginPwd;
                   Command.Parameters.Add("@UserStateId", SqlDbType.Int).Value = teacher.UserStateId;
                   Command.Parameters.Add("@TeacherName", SqlDbType.VarChar, 50).Value = teacher.TeacherName;
                   Command.Parameters.Add("@Sex", SqlDbType.VarChar , 50).Value = teacher.Sex;
                   conn.Open();
                   number = Convert.ToInt16(Command.ExecuteNonQuery ());
                   conn.Close();
                   conn.Dispose();
               }
               return number;
           }
      我刚好也在做 呵呵
      

  6.   

    执行完存储过程后。就得到值了。这个值存在 Parametes["aa"].Value 中。
    声明一个变量去取值就行了
    对你有帮助么?