本文

修改

1、修改指定商品 Repository

        /// <summary>
        /// 修改商品內容
        /// </summary>
        /// <param name="productModel"></param>
        /// <returns></returns>
        public bool UpdateProduct(ProductModel productModel)
        {
            var sql = @"UPDATE products
                        SET    productname = @ProductName,
                               supplierid = @SupplierID,
                               categoryid = @CategoryID,
                               quantityperunit = @QuantityPerUnit,
                               unitprice = @UnitPrice,
                               unitsinstock = @UnitsInStock,
                               unitsonorder = @UnitsOnOrder,
                               reorderlevel = @ReorderLevel,
                               discontinued = @Discontinued
                        WHERE productid = @ProductID ";

            var parameters = new DynamicParameters();
            parameters.Add("@ProductName", productModel.ProductName);
            parameters.Add("@SupplierID", productModel.SupplierID);
            parameters.Add("@CategoryID", productModel.CategoryID);
            parameters.Add("@QuantityPerUnit", productModel.QuantityPerUnit);
            parameters.Add("@UnitPrice", productModel.UnitPrice);
            parameters.Add("@UnitsInStock", productModel.UnitsInStock);
            parameters.Add("@UnitsOnOrder", productModel.UnitsOnOrder);
            parameters.Add("@ReorderLevel", productModel.ReorderLevel);
            parameters.Add("@Discontinued", productModel.Discontinued);
            parameters.Add("@ProductID", productModel.ProductID);

            var connection = new SqlConnection(ConnectionHelper.ConnectionStr);

            var result = connection.Execute(
                sql,
                parameters);

            return result > 0;
        }

2、在 Controller 建立一個 Update 方法。

        /// <summary>
        /// 修改商品
        /// </summary>
        /// <param name="productModel"></param>
        /// <returns></returns>
        [Route("Product")]
        [HttpPatch]
        public ResultModel UpdateProduct([FromBody] ProductModel productModel)
        {
            var result = new ResultModel();
            var repository = new ProductRepository();

            var data = repository.UpdateProduct(productModel);

            if (data == true)
            {
                result.Result = data;
                result.Message = "修改商品成功";
            }
            else
            {
                result.Result = data;
                result.Message = "修改商品失敗,請重試";
            }

            return result;
        }

3、測試

選擇更新 productid=85 這筆

更新內容

{
    "ProductId": 85 ,
    "ProductName": "testProduct1",
    "SupplierID": 1,
    "CategoryID": 1,
    "QuantityPerUnit": "1k pkg.",
    "UnitPrice": 10.5,
    "UnitsInStock": 2,
    "UnitsOnOrder": 50,
    "ReorderLevel": 10,
    "Discontinued": false
}

刪除

1、刪除指定的商品 Repository

        /// <summary>
        /// 刪除指定的商品
        /// </summary>
        /// <param name="productId"></param>
        /// <returns></returns>
        public bool RemoveProduct(int productId)
        {
            var sql = @"DELETE products
                        WHERE  productid = @ProductID ";

            var parameter = new DynamicParameters();
            parameter.Add("@ProductID", productId);

            var connection = new SqlConnection(ConnectionHelper.ConnectionStr);

            var result = connection.Execute(
                sql,
                parameter);

            return result > 0;
        }

2、在 Controller 建立一個 Remove 方法。

        /// <summary>
        /// 刪除指定商品
        /// </summary>
        /// <param name="productId"></param>
        /// <returns></returns>
        [Route("Product/{productId}")]
        [HttpDelete]
        public ResultModel RemoveProduct(int productId)
        {
            var result = new ResultModel();
            var repository = new ProductRepository();

            var data = repository.RemoveProduct(productId);

            if (data == true)
            {
                result.Result = data;
                result.Message = "刪除商品成功";
            }
            else
            {
                result.Result = data;
                result.Message = "刪除商品失敗,請重試";
            }

            return result;
        }

3、測試

選擇刪除 productId=84 這筆資料。

資料庫列表

後記

到此算是簡單的 CRUD 示範,接下來會開始分析及解說一下這個範例使用的方式。
示範程式碼會一併放到 Github 需要觀看的可以到以下連結