發表文章

目前顯示的是 6月, 2022的文章

[SQL] SqlException 3981 - 在暫止的本機交易中指定命令的連接時,此命令必須具有交易物件才可執行。

 如標題,在使用 C# 對 SQL Server 進行CRUD 時,發生此錯誤。 不廢話,直接附上我的情境及解法。 因為我在 IEnumerable 使用 ForEach() 中,進行 CRUD,此時推測內部的迭代器運作上對初始化交易的步驟,不如正常預期。 所以改為 for(...) { // CRUD },在 for 中執行CRUD,就沒有所謂迭代器的問題,收工。

[遞迴邏輯] 採購單轉為訂購單

有一種業務邏輯如下: /// 功能說明: 將採購單依照特定條件轉結為訂購單。 /// 條件一: 每張訂購單的總金額不能大於 25,000,000 /// 條件二: 未轉訂購單的資料才要轉訂購單 /// 條件三: 報價單種類為 2-特殊報價單,需要進行分類 /// 條件四: 依照 [運送方式 ShipId], [報價單種類 QuotationType], [類別 TransOrderYn], [特報單類別 QuotationNo] 分類 /// 條件五: 特定機型有對應的特定數量,該訂單的數量不能超過該特定數量 不廢話,附上連結: .Net Fiddle |  Github

[遞迴邏輯] 採購單取得一般報價和特殊報價

 /// 功能目的:  /// 採購單需要依照出貨的日期取得商品的報價,而商品報價有分一般報價和特殊報價。 /// 一般報價通常為全年度常態性的報價。特殊報價通常價格較低且有期間限定,且特殊報價需先使用,否則有違約的可能。 /// 功能說明: /// 1. 先準備好採購資料集合、報價單資料集合 /// 2. 依照下方的邏輯去篩選 /// 3. 主要透過採購資料集合的 Done 屬性,來判斷至否結束當前的遞迴。 不囉嗦,附上連結: .Net Fiddle | GitHub

[SQL] 將資料類型從 numeric 轉換到 decimal 時發生錯誤

 如題,該情境是搭配C#後端,要將資料存入資料庫時發生,該欄位是 decimal(11, 6),而檢查後發現我存入的值是 30,000,000,但是該欄位的極限是 99,999.000000。 當下想到我存 decimal  為什麼會跟 numeric 有關係,後來才發現我存的整數部分是 numeric,最後才會轉換到 decimal,所以超過定義的數量才會報錯。 不廢話附上解法,將原本欄位從 decimal(11, 6) =>  decimal(13, 6),結案。