红色的地方为错误出现的地方!!!
public bool UpdateStockCount(string stockid, int stockcount, int operation)
    {
        //打开连接,并执行SqlCommand命令
        using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
        {
            //打开数据库连接
            conn.Open();
            //创建与连接关联的SqlCommand
            SqlCommand mycmd = conn.CreateCommand();
            //获取更新需要的参数列表
            SqlParameter[] memberParms = GetStockParameters();
            //给参数赋值
            memberParms[0].Value = stockid;
            //判断当操作为退货时,数量应该是负数
            if (operation == 1)
                memberParms[1].Value = -stockcount;
            else
                memberParms[1].Value = stockcount;
            memberParms[2].Value = DateTime.Now;
            //将参数添加到SqlCommand命令中
            foreach (SqlParameter parm in memberParms)
                mycmd.Parameters.Add(parm);
            //开始数据库事务
            SqlTransaction trans = conn.BeginTransaction("StockTrans");
            try
            {
                //设置SqlCommand属性
                mycmd.Connection = conn;
                mycmd.Transaction = trans;
                mycmd.CommandType = CommandType.Text;
                mycmd.CommandText = SQL_UPDATE_STOCKCOUNT;
                mycmd.ExecuteNonQuery();                //判断选择的是那种操作类型:0-销售,1-退货,2-反馈
                switch (operation)
                {
                    case 0:
                        mycmd.CommandText = SQL_INSERT_SALE;
                        break;
                    case 1:
                        mycmd.CommandText = SQL_INSERT_BACK;
                        break;
                    case 2:
                        mycmd.CommandText = SQL_INSERT_GIFT;
                        break;
                }
                mycmd.ExecuteNonQuery();
                //执行事务
                trans.Commit();
                //清空参数列表
                mycmd.Parameters.Clear();
                return true;
            }
            catch
            {
                //如果发生错误,则事务回滚
                trans.Rollback();
                return false;
            }        }
    }