發表文章

[SQL] 搜尋時間起迄範圍

 如題所示,會遇到資料表中存起、迄時間,並且搜尋時要搜尋特定的區間,只要資料中有任一時間包含區間內就要找到,不廢話直接附上SQL。 ( StartDate BETWEEN @StartDate AND @EndDate OR EndDate BETWEEN @StartDate AND @EndDate OR @StartDate BETWEEN StartDate AND EndDate OR @EndDate BETWEEN StartDate AND EndDate )

[Redis] 常用配置(一)

圖片
 近期接觸了 Redis ,有些配置上的問題做個紀錄。 1. Redis文件中密碼配置及程式中如何設置連線字串:     1.1  Redis文件中密碼配置:           在  redis.windows.conf 中找到 requirepass 這個關鍵字,就在這個段落加上以下內容:           requirepass: 表示要使用密碼。( 切記:  requirepass 前面不能空格!!! )           1qaz2wsx: 為我們設置的密碼          1.2  程式中如何設置連線字串:          在連線字串中,密碼和Host用@進行分隔。 2. 解除 ServiceStack.Redis 中的6000次連線限制 ( 目前版本為 6.0.2 )     2.1 下載原始碼:  GitHub - ServiceStack/ServiceStack.Text: .NET's fastest JSON, JSV and CSV Text Serializers     2.2  限制免費配額功能在ServiceStack.Text類庫下的LicenseUtils.cs文件中,僅需從GitHub上下載源碼後添加一行代碼重新編譯即可解除限制,如下圖:     2.3 將編譯好的DLL放到指定的資料夾中,再把新的專案重新編譯即可。 3. 將 Redis 加入服務     3.1 加入環境變數     3.2 加入服務          3.2.1 在 Redis 的資料夾中開啟 CMD,並且入以下指令 redis-server.exe --service-install redis.windows.conf --l...

[Webpack] Webpack 、Webpack-cli的版本、安裝、解除安裝及打包指令

如題,分享一下 Webpack 的版本及安裝。 /***** Webpack 及 Webpack-cli 版本對應 *****/ webpack3 的 webpack 和 webpack-cli 的功能是集成在一起的,只需要安裝 webpack3 即可 npm install webpack@3 webpack4+,執行方式已調整,不再是 webpack 一個而已,而是多了 webpack-cli 依賴 版本 新版本 webpack 4 5 webpack-cli 3 4 webpack-dev-server 3 3 /***** 初始化 Js/Node.js 項目,並產生 package.json *****/ // "本地"安裝 Js/node.js 項目(需在指定路徑) npm  init /***** 全局 *****/ // 全局安裝最新版本(不限路徑) npm  i  webpack  webpack-cli  -g // 全局安裝指定 webpack4版本 對應 webpack-cli3版本 (不限路徑) npm  i  webpack@4.46  webpack-cli@3.3.12  -g // 全局卸載 webpack 和 webpack-cli  npm  uninstall  webpack  webpack-cli  -g // 全局查看 webpack 版...

[Windows] win10於檔案總管右鍵選單開啟非常緩慢

圖片
 如提,近期在檔案總管右鍵取得選單時,開啟非常緩慢,以下附上解法。 1. 搜尋 regedit 2. 依照圖片找到 Desktop 的目錄,右鍵新增一個 DWORD(32位元) 3. 新增後,先不用改名。 4.  在對這個新增項目右鍵,選重新命名,名稱為: WaitToKillAppTimeout 5. 若是發生名稱重複的錯誤,表示目前已存在該項目,就把新增的刪掉就好,等等我們找到這個新項目直接改。 6. 找到修改項目,右鍵選 "修改",並依照圖片,將值改為0即可。

[SQL] SQL定序及Azure雲端資料庫定序問題

圖片
之前專案的資料庫是放在 Azure 雲端,後來有個調整是要將下拉選單的選項依照名稱排序,那麼此時會遇到奇怪的情況: 基操的 ORDER BY Name 取得的資料竟然沒有照中文筆畫大小排序!!! 這邊就直接附上解法: 1) 什麼是定序: 決定資料庫所使用的字元集、排序的方式 2) 先查詢目前資料庫的定序是什麼? SELECT CONVERT (varchar(256), SERVERPROPERTY('collation'))               我取得的定序是  SQL_Latin1_General_CP1_CI_AS ,而若使用這個定序,就無法依照中文筆畫排序。                * 可以參考 微軟的定序頁面 3) 若是要照中文筆畫排序,則使用該定序  chinese_taiwan_stroke_ci_as SELECT * FROM User ORDER BY Name chinese_taiwan_stroke_ci_as 4) 若是要照ㄅㄆㄇㄈ排序,則使用該定序  Chinese_Taiwan_BOPOMOFO_CI_AI SELECT * FROM User ORDER BY Name Chinese_Taiwan_BOPOMOFO_CI_AI

[VPN] Forticlient 無法連線及版本問題

圖片
 如題,使用 Forticlient 時,會遇到無法連線的問題,目前遇到多數問題可以透過以下兩個方式解決,如果有其他疑難雜症就再自行 google 看看了~ 1. IE 開啟 TLS 1.2 IE > 網際網路設定 > 進階 > TLS 1.2 2. 版本不相容     因為您的 Forticlient 和 Server 端所設定的版本不匹配,所以很常會遇到下載新的版本卻一直報錯,建議使用舊版 FortiClientOnlineInstaller_6.0.exe 來連線即可,收工。

[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