本文

修改

1、修改指定商品 Repository

  1. /// <summary>
  2. /// 修改商品內容
  3. /// </summary>
  4. /// <param name="productModel"></param>
  5. /// <returns></returns>
  6. public bool UpdateProduct(ProductModel productModel)
  7. {
  8. var sql = @"UPDATE products
  9. SET productname = @ProductName,
  10. supplierid = @SupplierID,
  11. categoryid = @CategoryID,
  12. quantityperunit = @QuantityPerUnit,
  13. unitprice = @UnitPrice,
  14. unitsinstock = @UnitsInStock,
  15. unitsonorder = @UnitsOnOrder,
  16. reorderlevel = @ReorderLevel,
  17. discontinued = @Discontinued
  18. WHERE productid = @ProductID ";
  19. var parameters = new DynamicParameters();
  20. parameters.Add("@ProductName", productModel.ProductName);
  21. parameters.Add("@SupplierID", productModel.SupplierID);
  22. parameters.Add("@CategoryID", productModel.CategoryID);
  23. parameters.Add("@QuantityPerUnit", productModel.QuantityPerUnit);
  24. parameters.Add("@UnitPrice", productModel.UnitPrice);
  25. parameters.Add("@UnitsInStock", productModel.UnitsInStock);
  26. parameters.Add("@UnitsOnOrder", productModel.UnitsOnOrder);
  27. parameters.Add("@ReorderLevel", productModel.ReorderLevel);
  28. parameters.Add("@Discontinued", productModel.Discontinued);
  29. parameters.Add("@ProductID", productModel.ProductID);
  30. var connection = new SqlConnection(ConnectionHelper.ConnectionStr);
  31. var result = connection.Execute(
  32. sql,
  33. parameters);
  34. return result > 0;
  35. }

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

  1. /// <summary>
  2. /// 修改商品
  3. /// </summary>
  4. /// <param name="productModel"></param>
  5. /// <returns></returns>
  6. [Route("Product")]
  7. [HttpPatch]
  8. public ResultModel UpdateProduct([FromBody] ProductModel productModel)
  9. {
  10. var result = new ResultModel();
  11. var repository = new ProductRepository();
  12. var data = repository.UpdateProduct(productModel);
  13. if (data == true)
  14. {
  15. result.Result = data;
  16. result.Message = "修改商品成功";
  17. }
  18. else
  19. {
  20. result.Result = data;
  21. result.Message = "修改商品失敗,請重試";
  22. }
  23. return result;
  24. }

3、測試

選擇更新 productid=85 這筆

更新內容

  1. {
  2. "ProductId": 85 ,
  3. "ProductName": "testProduct1",
  4. "SupplierID": 1,
  5. "CategoryID": 1,
  6. "QuantityPerUnit": "1k pkg.",
  7. "UnitPrice": 10.5,
  8. "UnitsInStock": 2,
  9. "UnitsOnOrder": 50,
  10. "ReorderLevel": 10,
  11. "Discontinued": false
  12. }

刪除

1、刪除指定的商品 Repository

  1. /// <summary>
  2. /// 刪除指定的商品
  3. /// </summary>
  4. /// <param name="productId"></param>
  5. /// <returns></returns>
  6. public bool RemoveProduct(int productId)
  7. {
  8. var sql = @"DELETE products
  9. WHERE productid = @ProductID ";
  10. var parameter = new DynamicParameters();
  11. parameter.Add("@ProductID", productId);
  12. var connection = new SqlConnection(ConnectionHelper.ConnectionStr);
  13. var result = connection.Execute(
  14. sql,
  15. parameter);
  16. return result > 0;
  17. }

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

  1. /// <summary>
  2. /// 刪除指定商品
  3. /// </summary>
  4. /// <param name="productId"></param>
  5. /// <returns></returns>
  6. [Route("Product/{productId}")]
  7. [HttpDelete]
  8. public ResultModel RemoveProduct(int productId)
  9. {
  10. var result = new ResultModel();
  11. var repository = new ProductRepository();
  12. var data = repository.RemoveProduct(productId);
  13. if (data == true)
  14. {
  15. result.Result = data;
  16. result.Message = "刪除商品成功";
  17. }
  18. else
  19. {
  20. result.Result = data;
  21. result.Message = "刪除商品失敗,請重試";
  22. }
  23. return result;
  24. }

3、測試

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

資料庫列表

後記

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