public string OrderUpdate([FromQuery] updateOrders UpdateData, [FromBody] UpdateOrderDetails UpdateDetailData) { //required information if (UpdateData.OrderID == 0) { return("Please input OrderID"); } string result, updateOrder, updateOrderDetial; var Update = new DataUpdate(); //Determine if Order need to update if (UpdateData.CustomerID != null || UpdateData.CustomerID != null || UpdateData.EmployeeID != null || UpdateData.OrderDate != null || UpdateData.RequiredDate != null || UpdateData.ShipVia != null || UpdateData.Freight != null || UpdateData.ShipName != null || UpdateData.ShipAddress != null || UpdateData.ShipCity != null || UpdateData.ShipRegion != null || UpdateData.ShipPostalCode != null || UpdateData.ShipCountry != null) { updateOrder = Update.UpdateOrderData(UpdateData); } else { updateOrder = "Order not Edit"; } //Determine if Order Detail need to update & ProductID is required information if (UpdateDetailData.ProductID != null & (UpdateDetailData.Quantity != null || UpdateDetailData.UnitPrice != null || UpdateDetailData.Discount != null)) { updateOrderDetial = Update.UpdateOrderDetailData(UpdateDetailData, UpdateData.OrderID); } else { updateOrderDetial = "Order Detail not Edit"; } result = updateOrder + " & " + updateOrderDetial; return(result); }
public string UpdateOrderData(updateOrders UpdateData) { var dynamicParams = new DynamicParameters();//←動態參數 dynamicParams.Add("OrderID", UpdateData.OrderID); var sqlCondition = @""; string SqlString, result; var Update = new SqlServices(); SqlConnection conn = new SqlConnection("Data Source=howardorder.database.windows.net;Initial Catalog=OrderDatabase;Persist Security Info=True;User Id =howard;Password=Yihao1222"); conn.Open(); //Determine if HasValue if (UpdateData.EmployeeID.HasValue) { sqlCondition = sqlCondition + " EmployeeID = @EmployeeID,"; dynamicParams.Add("EmployeeID", UpdateData.EmployeeID); } if (UpdateData.CustomerID != null) { dynamicParams.Add("CustomerID", UpdateData.CustomerID); var queryCustomer = conn.Query <updateOrders>("select CustomerID From Customers where CustomerID = @CustomerID", dynamicParams); conn.Close(); if (queryCustomer.Count() != 0) { sqlCondition = sqlCondition + "CustomerID = @CustomerID,"; } else { conn.Close(); return("No such CustomerID"); } } if (UpdateData.RequiredDate.HasValue) { sqlCondition = sqlCondition + "RequiredDate = @RequiredDate,"; dynamicParams.Add("RequiredDate", UpdateData.RequiredDate); } if (UpdateData.ShippedDate.HasValue) { sqlCondition = sqlCondition + "ShippedDate = @ShippedDate,"; dynamicParams.Add("ShippedDate", UpdateData.ShippedDate); } if (UpdateData.ShipVia.HasValue) { sqlCondition = sqlCondition + "ShipVia = @ShipVia,"; dynamicParams.Add("ShipVia", UpdateData.ShipVia); } if (UpdateData.Freight.HasValue) { sqlCondition = sqlCondition + "Freight = @Freight,"; dynamicParams.Add("Freight", UpdateData.Freight); } if (UpdateData.ShipName != null) { sqlCondition = sqlCondition + "ShipName = @ShipName,"; dynamicParams.Add("ShipName", UpdateData.ShipName); } if (UpdateData.ShipAddress != null) { sqlCondition = sqlCondition + "ShipAddress = @ShipAddress,"; dynamicParams.Add("ShipAddress", UpdateData.ShipAddress); } if (UpdateData.ShipCity != null) { sqlCondition = sqlCondition + "ShipCity = @ShipCity,"; dynamicParams.Add("ShipCity", UpdateData.ShipCity); } if (UpdateData.ShipRegion != null) { sqlCondition = sqlCondition + "ShipRegion = @ShipRegion,"; dynamicParams.Add("ShipRegion", UpdateData.ShipRegion); } if (UpdateData.ShipPostalCode != null) { sqlCondition = sqlCondition + "ShipPostalCode = @ShipPostalCode,"; dynamicParams.Add("ShipPostalCode", UpdateData.ShipPostalCode); } if (UpdateData.ShipCountry != null) { sqlCondition = sqlCondition + "ShipCountry = @ShipCountry,"; dynamicParams.Add("ShipCountry", UpdateData.ShipCountry); } sqlCondition = sqlCondition.Remove(sqlCondition.LastIndexOf(","), 1); SqlString = $@"UPDATE Orders SET {sqlCondition} WHERE OrderID = @OrderID"; result = Update.SqlUpdate(SqlString, dynamicParams); if (result.Equals("Update Success")) { result = "Edit Order - Success"; } return(result); }