这是网址:
http://topic.csdn.net/u/20080614/23/af7bdab8-2f09-4276-94a4-76f5728e893d.html

解决方案 »

  1.   

    public int NewOrder(string userName, DateTime time, decimal sum) 
        { 
            cmd.CommandType = CommandType.StoredProcedure; 
            cmd.CommandText = "NewOrder"; 
            cmd.Parameters.Add(new SqlParameter("@UserName", userName)); 
            cmd.Parameters.Add(new SqlParameter("@Time", time)); 
            cmd.Parameters.Add(new SqlParameter("@Sum", sum)); 
            SqlParameter par1 = new SqlParameter("@ID", SqlDbType.Int); 
            
            par1.Direction = ParameterDirection.Output; 
            cmd.Parameters.Add(par1); 
            conn.Open(); 
            cmd.ExecuteNonQuery(); 
            conn.Close();
            int aa=(int)par1.Value;
            cmd.Parameters.clear();//就是这里
            return aa; 
        } 
      

  2.   

    非常感谢各位帮忙,问题已解决了。
    解决方法如下: public int mNewOrder(string userName, DateTime time, decimal sum) 
        { 
            cmd.CommandType = CommandType.StoredProcedure; 
            cmd.CommandText = "NewOrder"; 
            cmd.Parameters.Clear();//这先清空一下参数,因为cmd是全局变量,之前可以已经给它添加过参数 
            cmd.Parameters.Add(new SqlParameter("@UserName", userName)); 
            cmd.Parameters.Add(new SqlParameter("@Time",time )); 
            cmd.Parameters.Add(new SqlParameter("@Sum", sum));         SqlParameter par1 = new SqlParameter("@ID", SqlDbType.Int);              par1.Direction = ParameterDirection.Output; 
            cmd.Parameters.Add(par1); 
            conn.Open(); 
            cmd.ExecuteNonQuery(); 
            conn.Close(); 
            return (int)par1.Value; 
        } 
    之前确实给它添加了参数。有人帮忙设置了断点,查到我的cmd参数个数是五个并查到每一个参数的名称,我才想到我之前用过它的。