發表文章

[C#] 需有 Oracle 用戶端軟體版本 8.1.7 或以上版本

圖片
 如題,近期有個老舊專案使用了 System.Data.OracleClient,運行時報了該錯誤,看了一些文章後下載了 Oracle Client 64bit,又報了一個錯誤 => "當與具有32位元的oracle用戶端元件執行64位元模式",搞了幾個小時後總算解決!! 而正解就是要安裝 Oracle Client 11 32bit ,不廢話附上安裝步驟:     1. 安裝  Oracle Client 11 32bit          (1) 解壓縮後找到 setup.exe          (2) 畫面會出現安裝提示,按下是 ( 注意,估計安裝程式很舊,他不會自動跳出,建議 Alt + Tab 切換一下找到這個提示 )          (3) 選擇"一般安裝",之後一直下一步就可以了。 參考資料: 1.  建立webservice 連接DB for Oracle9i - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天 (ithome.com.tw) 2.  蟲蟲不要找我碴: 嘗試載入oracle用戶端程式庫時傳出badimageformatexception當與具有32位元的oracle用戶端元件執行64位元模式安裝時會出現此問題 (bgcloser.blogspot.com)

[Angular] npm ERR! code ELIFECYCLE ( angular11 執行 npm start 時發生錯誤)

圖片
    如 題,近期專案使用 Angular11 ,臨時發生該問題,花了幾個小時,試過許多方法都無法解決,最後總算是搞定了,以下附上解決的步驟。 1. 修改package.json配置文件:     (1)  將 "start": "ng serve" 調整為以下。           "start": "node --max_old_space_size=8048 ./node_modules/@angular/cli/bin/ng serve" 2. 套件重新安裝"     (1) 刪除緩存,在命令提示字元輸入 =>  npm cache clean --force     (2)  刪除專案根目錄中的 node_modules 資料夾     (3) 刪除  package-lock.json     (4) 在專案中重新執行 =>  npm install     到 這邊可以先執行看看 npm start,若是可以的話那就恭喜您,仍然無法的話就繼續執行第三步驟吧~ 3. 將 node.js 版本調整為 10.X 版本 (圖片是我安裝的版本)     (1) 將當前的nodejs解除安裝 (win10的話,直接在控制台那就可以解除安裝)。     (2) 進入官網  Previous Releases | Node.js (nodejs.org) ,找到 10.X版本按下Downloads 。( 本地備份 node-v10.24.1-x64.msi )     (2) 依照電腦配置下載安裝 參考資料: 1.  node.js - Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory in angular - Stack Overflow 2.  node.js - How to...

[C#] System.ObjectDisposedException: IDataContext is disposed

如題,這次開發中遇到該問題,因為這次用的 ORM 是 LinqToDB,當下以為和 EntityFramework 沒什麼不同,後來再使用中遇到個奇妙的事情,就是我使用 AsQueryable() 後,再次使用該實體時,會發現這個實體被 Dispose 掉了,造成第一次訪問一定可以,後來就出現Bug,目前解決方法是當使用 LinqToDB 時盡量避敏用 AsQueryable()。 參考資料: c# - IQueryable is disposed after using - Stack Overflow

[C#]使用IQueryable動態排序ThenBy

    該情境是前端有資料需要多重排序,每個欄位 (key) 可以正序或倒序 (order) ,且要依照順序 (sortNo) ,所以前端只要把排序條件給後端,而後端會把資料篩選排序後,回傳給前端。     由於效能因素,物件必須於過程中保持 IQueryable,於最後輸出時再轉為 IEnumerable,所以這邊有個擴充可以參考引用。 ●排序條件的範例Json: { "orderList": [ { "key": "Id". "order": 1, "sortNo": 1 }, { "key": "Age". "order": -1, "sortNo": 2 } ] } 一、手動新增IQueryable擴充: public static class IOrderedQueryableExtension { public static IOrderedQueryable<T> OrderBy<T>(this IQueryable<T> source, string property) { return ApplyOrder<T>(source, property, "OrderBy"); } public static IOrderedQueryable<T> OrderByDescending<T>(this IQueryable<T> source, string property) { return ApplyOrder<T>(source, property, "OrderByDescending"); } public static IOrderedQueryable<T> ThenBy<T>(...

[C#]RBK(8進制)和字串互轉

因特殊需求,需要實作該功能,主要功能的轉換是類似以下範例:      "\304\343\272\303" => "你好" 不廢話,附上程式碼。 // 中文轉Rbk8進制 private void button1_Click(object sender, EventArgs e) { string hz = this.richTextBox1.Text; byte[] gbk = Encoding.GetEncoding("GBK").GetBytes(hz); string s1 = ""; foreach (byte b in gbk) { s1 += $"\\{Convert.ToString(b, 8)}"; } this.richTextBox2.Text = s1; } // Rbk8進制轉中文 private void button2_Click(object sender, EventArgs e) { string cd = this.richTextBox1.Text; string[] b4 = RemoveEmptyString(cd.Split('\\')); byte[] bs = new byte[b4.Length]; for (int i = 0; i < b4.Length; i++) { bs[i] = (byte)Convert.ToByte(b4[i], 8); } this.richTextBox2.Text = Encoding.GetEncoding("GBK").GetString(bs); } // 移除空字串 private string[] RemoveEmptyString(string[] strArr) { List strList = new List (); ; foreach (var item in strArr) { if (!string.IsNullOr...

[C#]DateTime移除秒、移除毫秒或無條件進位

 ● 去掉 一個Datetime物件的 秒數(seconds) -方法一 DateTime dt = DateTime.Now; // 初始化一個Datetime物件 dt = dt.AddSeconds(-dt.Second); // 加負號,移除秒數  ● 去掉 一個Datetime物件的 秒數(seconds) -方法二 DateTime dt = DateTime.Now; // 初始化一個Datetime物件 var dtStr = dt.ToString( "yyyy-MM-dd HH:mm" ); // 轉為字串,去掉 :ss dt = Conver.ToDateTime( dtStr ); // 秒數部份即為0  ● 去掉 一個Datetime物件的 毫秒數(Millisecond) -方法一 DateTime dt = DateTime.Now; // 初始化一個Datetime物件 dt = dt.AddMilliseconds(-dt.Millisecond); // 加負號,移除豪秒數  ● 去掉 一個Datetime物件的 毫秒數(Millisecond) -方法二 DateTime dt = DateTime.Now; // 初始化一個Datetime物件 var dtStr = dt.ToString( "yyyy-MM-dd HH:mm" ); // 轉為字串,去掉 :ss dt = Conver.ToDateTime( dtStr ); // 秒數部份即為0  ●Datetime物件的 毫秒數(Millisecond) 無條件進位 DateTime dt = DateTime.Now; // 初始化一個Datetime物件 dt = dt.AddMilliseconds( 1000 - dt.Millisecond ); //秒數會加1, 毫秒數為0 參考資料: 1.  c# - Strip seconds from datetime - Stack Overflow 2.  C#中DateTime对象去掉毫秒部分的方法,如何对毫秒部分四舍五入为整秒 - 代码先锋网 (codeleading.com)

贊助Donate

圖片
  Buy me a coffee   PayPal.Me

[SQL] 在SqlServer修改資料表Schema (Change dbo schema to other)

●修改資料表的 Schema 從 MySchema 回復為 dbo : ALTER SCHEMA MySchema TRANSFER dbo.MyTable ●修改資料表的 Schema 從 dbo 改為 MySchema : ALTER SCHEMA dbo TRANSFER MySchema.MyTable 參考資料:  sql - How do I change db schema to dbo - Stack Overflow  

[Git]Another git process seems to be running in this repository

     如標題,操作Git時,偶然間發生這個問題,想要使用 switch / checkout, 或是 commit 都是這個錯誤 "git did not exit cleanly (exit code 128)" ,此外還有一行提示 "Another git process seems to be running in this repository",不多話,附上解法: 刪掉  .git/index.lock 收工。 參考:  Another git process seems to be running in this repository - Stack Overflow