sql 中:
定义@mp_ChildCateID int output
赋值select @mp_ChildCateID= @@identity在ado.net 中取值:
cmd.Parameters.Add("@mp_ChildCateID", childCategory.MpChildCateID);
            cmd.Parameters["@mp_ChildCateID"].Direction = ParameterDirection.Output;
            string strChildCateID=cmd.Parameters["@mp_ChildCateID"].Value.ToString();
            cmd.ExecuteNonQuery();
            return strChildCateID;这么写对不对?
现在这么些返回的都是0,要怎么改?

解决方案 »

  1.   

         string strResult="";    //接收output的值
         cmd.Parameters["@mp_ChildCateID"].Direction=ParameterDirection.Output;
         cmd.ExecuteNonQuery();
         strResult=cmd.Parameters["@mp_ChildCateID"].Value.ToString(); 
      

  2.   

    取值要放在 cmd.ExecuteNonQuery(); 之后,否则还没执行sql哪来的值?
      

  3.   


    cmd.Parameters.Add("@mp_ChildCateID", childCategory.MpChildCateID);
                cmd.Parameters["@mp_ChildCateID"].Direction = ParameterDirection.Output;
                string strChildCateID=cmd.Parameters["@mp_ChildCateID"].Value.ToString();
                cmd.ExecuteNonQuery();
                return strChildCateID;
    --------------
    取值应放到执行的后面 就是ExecuteNonQuery的后面
    cmd.Parameters.Add("@mp_ChildCateID", childCategory.MpChildCateID);
                cmd.Parameters["@mp_ChildCateID"].Direction = ParameterDirection.Output;
                
                cmd.ExecuteNonQuery();
                string strChildCateID=cmd.Parameters["@mp_ChildCateID"].Value.ToString();
                return strChildCateID;