發表文章

[MSSQL] 查詢Index資料

SELECT obj.name TableName, ind.name IndexName, col.name IndexColumn, incol.index_column_id IndexColumnSN FROM sys.columns col INNER JOIN sys.objects obj ON obj.object_id = col.object_id INNER JOIN sys.index_columns incol ON incol.COLUMN_ID = col.column_id AND incol.object_id = obj.object_id INNER JOIN sys.indexes ind on ind.index_id = incol.index_id AND obj.object_id = ind.object_id WHERE obj.name = 'TableName' order by ind.name, incol.index_column_id

C# 開啟指定路徑檔案語法

  System.Diagnostics.Process.Start(FilePath)

LINQ 延遲執行 立即執行

 LINQ 延遲執行 立即執行 Where及回傳值為IEnumerable<T>的語法, 都是延遲執行 其他的一些像First、Count、ToArray、ToList、ToDictionary、ToLookup都是立即執行 ref web: https://www.cnblogs.com/GreenLeaves/p/7601476.html

C# DateTime is a value type

DateTime is a value type   ( struct ) This means that the following creates a copy: DateTime toBeClonedDateTime = DateTime.Now; DateTime cloned = toBeClonedDateTime; ref web: https://stackoverflow.com/questions/4265399/how-can-i-clone-a-datetime-object-in-c

JQuery 筆記

  * JQuery(document).ready(function(){...}; 可以用以下方式表示 JQuery(function(){}); $(function(){}); * 依Class和data-qid值找到對應Element var aa = $("button[data-qid='" + qid + "']").filter(".btnLINK2").data('qname'); var aa = $(".btnLINK2").filter("button[data-qid='" + qid + "']").data('qname'); var aa = $(".btnLINK2").filter("[data-qid='" + qid + "']").data('qname');

Sublime Text 3 好用套件

※ 001  SqlBeautifier 格式化SQL 安裝完成後, 重啟程式 使用方法: Ctrl+K, Ctrl+F

Visual Studio 快捷鍵

  #region ... #endregion 001. Ctrl + K, Ctrl + S 將選取程式碼前後加上 #region ... #endregion 002. Ctrl + M + M 折疊當前 region 003. Ctrl + Shift + ↑ or ↓ 切換當前region至 #region or #endregion 004. Shift + F12 尋找所有參考 005. F12 移至定義 005-2. Ctrl + F12 移至實作 006. Ctrl + (減字號) 返回前一步驟 007. Ctrl + D 複製當前列資料 008. Ctrl + X 刪除當前列資料

[MSSQL]Insert資料後取得identity ID

圖片
  Insert into A_3(Data1) select convert(varchar,Getdate(),120) SELECT @@IDENTITY as PKID

[MSSQL]Insert into 後取得Insert資料

圖片
  SQL: insert into A_3 (FormNo, Data1) OUTPUT Inserted.PKID,Inserted.FormNo select ltrim('20221202') + right('00000'+ltrim(Convert(int, isnull(right(max(FormNo), 5), '0'))+1),5)       ,convert(varchar,Getdate(),120) from A_3 where FormNo like '20221202%'

HTML特殊符號

  &lt; < 小于号或显示标记 &gt; > 大于号或显示标记 &amp; & 可用于显示其它特殊字符 &quot; “ 引号 &reg; ® 已注册 &copy; © 版权 &trade; ™ 商标 &ensp;   半个空白位 &emsp;   一个空白位 &nbsp;   不断行的空白 ref web: https://developer.aliyun.com/article/614020

SoapUI

  <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tip="http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay">    <soapenv:Header/>    <soapenv:Body>       <tip:UpdateStockInPostRequest>          <tip:request> 轉換後XML放這裡, 要把 < 取代為 &lt;           </tip:request>       </tip:UpdateStockInPostRequest>    </soapenv:Body> </soapenv:Envelope> 另一種方法 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tip="http://www.dsc.com.tw/tiptop/TIPTOPServiceGateWay">    <soapenv:Header/>    <soapenv:Body>       <tip:UpdateStockInPostRequest>          <tip:request> <![CDATA[ 原來XML ]]           </tip:request>       </tip:UpdateStockInPos...

C# 取得IP方式

  /// <summary> /// 取得本機 IP Address /// </summary> /// <returns> </returns> private List< string > GetHostIPAddress ( ) { List< string > lstIPAddress = new List< string >(); IPHostEntry IpEntry = Dns.GetHostEntry(Dns.GetHostName()); foreach (IPAddress ipa in IpEntry.AddressList) { if (ipa.AddressFamily == AddressFamily.InterNetwork) lstIPAddress.Add(ipa.ToString()); } return lstIPAddress; // result: 192.168.1.17 ...... } /// <summary> /// 取得外網 IP Address /// </summary> /// <returns> </returns> private string GetExtranetIPAddress ( ) { HttpWebRequest request = HttpWebRequest.Create( " http://www.whatismyip.com.tw " ) as HttpWebRequest; request.Method = "GET" ; request.ContentType = "application/x-www-form-urlencoded" ; request.UserAgent = "Mozilla/5.0" ; string ip = string .Empty; ...

C# 2個List比較差異 (Linq Excep)

  List<string> strList1 = new List<string>(){"a", "b", "c", "d"}; List<string> strList2 = new List<string>() { "a", "b", "f", "e"}; var strList3 = strList1.Except(strList2).ToList(); strList1排除strList2的資料, 結果為 c, d ref web: https://www.cnblogs.com/xinianxinqix/p/9204534.html

MSSQL 新增資料到自動識別欄位方法

 先執行下面語法, 允許寫入 自動識別欄位, SET IDENTITY_INSERT [ TABLE_NAME] ON ; 再執行要異動的SQL, 最後再執行下面語法, 變更欄位為 不允許寫入   ( 因為自動識別欄位名稱要存在SQL內, 所以不能使用 select * from tableA的語法, 欄位要逐一列出, 並且包含自動識別欄位 ) ※ 只有在自動識別欄位出現在 INSERT INTO 陳述式的資料行清單中時,SET IDENTITY_INSERT 才能設置為 ON。 SET IDENTITY_ INSERT [ TABLE_NAME] OFF ; ref web: https://exfast.me/2016/09/mssql-automatic-identification-field-when-required-insert-when-information-should-be-how-do/

[批次程式][BAT]顯示資料夾檔案結構(適用網路路徑)

  tree /f 目錄名稱 > dirs.txt

[LINQ][DataSet] 依條件加總數量

  decimal total = dt.AsEnumerable() .Sum(r => r.Field< decimal ?>( "Col1" ) ?? 0 ); decimal ? total = dt.AsEnumerable() .Sum(r => r.Field< decimal ?>( "Col1" )); // use total.HasValue and total.Value decimal d = 0 ; decimal total = dt.AsEnumerable() .Where(r => decimal .TryParse(r.Field< string >( "Col1" ), out d)) .Sum(r => d); decimal total = dt.AsEnumerable() .Where(r => !r.IsNull( "Col1" ) && decimal .TryParse(r[ "Col1" ].ToString(), out d)) .Sum(r => d); ref web: https://stackoverflow.com/questions/22294929/using-dt-asenumerable-sum-for-columns-having-string-null-value

MSSQL update joib table語法

 update B set columnsA='N'  from TableB B inner join TableA A on (A.C1=B.B1) where 1=1   and A.C1='123

Visual Studio 好用的延伸模組(vsix)

Codinion 文字顏色管理 Better Comments 註解顏色管理

Git常用指令

* 查看本地端 brach git branch * 查看Remote brach git branch -r * 同時查看本地端及Remote brach git branch -a * rescan file for update ignore git rm -r --cached . git add . * 建立空的branch git checkout --orphan <branch-name>  git rm --cached -r .                #clean all file

Win10 查筆電電池容量

  powercfg /batteryreport 開啟網頁 ref web: https://www.cool3c.com/article/130219

Git/SVN Tortoise 圖示沒有顯示

打開CMD輸入regedit 找到  \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers  把Tortoise文字前加'空白1', 讓名稱顯示在前面 系統預設只會顯示前15個圖示

Win11右鍵選單變更為Win10版本

Win11預設滑鼠右鍵選單會分為2層, 要變更為Win10的樣式, 可以打cmd輸入下列指令, 重開電腦後生效。 reg add HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32 /ve /f ref web: https://adersaytech.com/kb-article/rollback-context-menu-win11.html

C# 匯出Excel套件 EPPlus

 EPPlus //非商業用 ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial;                //filePath:檔案路徑                 FileInfo FileInfoXLS = new FileInfo(filePath);                 using (ExcelPackage package = new ExcelPackage(FileInfoXLS))                 {                     ExcelWorksheet ws = package.Workbook.Worksheets.Add("Data");                     // 將DataTable資料塞到sheet中                     ws.Cells["A1"].LoadFromDataTable(dtData, true);                     // 設定Excel Header 樣式                     using (ExcelRange rng = ws.Cells[1, dtData.Columns.Cou...

查詢電腦型號

 在執行輸入[dxdiag], 可以查到電腦型號。

怎麼停用Win10縮放比例造成WinForm尺寸跑掉問題

圖片
 因為現在螢幕解析度越來越高, 若在筆電上使用Win10系統時, 字會變很小, 所以通常都會放大125%~150%, 這會導致使用Visual Studio開啟Winform專案時, 物件尺寸會跑掉。 解決方法可以直接接外接螢幕, 調回100%, 就不會影響到Winform物件尺寸, 但也可以透過下面修改, 直接停用Visual Studio的DPI感知設定, 1. 開啟登錄(regedit) 2. 在[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags]新增機碼[Layers] 3. 在Layers下新增子機碼 a. 名稱: VS程式路徑 b. 類型: REG_SZ c. 資料(值): DPIUNAWARE 4. 再開啟Winform視窗時, 就會顯示[自動縮放比例已關閉] 各版本VS程式路徑: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv.exe ref web: https://docs.microsoft.com/zh-tw/visualstudio/designers/disable-dpi-awareness?view=vs-2022#add-a-registry-entry

Windows軟體套件管理[Chocolatey]

使用系統管理員打開 Power Shell, 執行下列指令安裝[ Chocolatey ] Set-ExecutionPolicy Bypass -Scope Process -Force ; iex (( New-Object System.Net.WebClient ) .DownloadString ( 'https://chocolatey.org/install.ps1' )) 安裝軟體, 多個軟體可以用空格分開 choco install googlechrome paint.net everything pdfxchangeeditor 7zip -y [常用軟體說明] googlechrome : Google Chrome paint.net : .Net版小畫家 everything : 快速搜尋檔案 pdfxchangeeditor : PDF Reader 7zip : 壓縮軟體 nomacs :  相片瀏覽 notepadplusplus : 安裝Notepad++ xmind : 心智圖 potplayer : 影片播放 winmerge : 文件比較 notepad2  : 文字編輯器 sublimetext4 : 文字編輯器 fiddler :  http協議除錯代理工具,能夠非常方便的檢視HTTP通訊資料 postman : API測試工具 soapui : 測試Webservice 自己常用 choco install googlechrome paint.net everything pdfxchangeeditor 7zip xmind potplayer -y 自己常用(程式開發) choco install git tortoisegit sourcetree winmerge sublimetext4 notepadplusplus -y 官網(可查詢件套及指令) :  https://community.chocolatey.org/packages 參考網頁: *  https://harry-lin.blogspot.com/2018/12/tool-windows-chocolatey.html * https://blog.miniasp.com/po...

git for windows下的Filename too long

git有可以创建4096长度的文件名,然而在windows最多是260,因为git用了旧版本的windows api,为此踩了个坑。 解决 打开git命令行: git config --global core.longpaths true ref web:  https://blog.csdn.net/liuxiao723846/article/details/78329223

[SQL]各式各樣的GETDATE()時間格式轉換CONVERT

 -- Microsoft SQL Server T-SQL date and datetime formats -- Date time formats - mssql datetime  -- MSSQL getdate returns current system date and time in standard internal format SELECT convert(varchar, getdate(), 100) - mon dd yyyy hh:mmAM (or PM)                                         - Oct  2 2008 11:01AM           SELECT convert(varchar, getdate(), 101) - mm/dd/yyyy - 10/02/2008                   SELECT convert(varchar, getdate(), 102) - yyyy.mm.dd - 2008.10.02            SELECT convert(varchar, getdate(), 103) - dd/mm/yyyy SELECT convert(varchar, getdate(), 104) - dd.mm.yyyy SELECT convert(varchar, getdate(), 105) - dd-mm-yyyy SELECT convert(varchar, getdate(), 106) - dd mon yyyy SELECT convert(varchar, getdate(), 107) - mon dd, yyyy SELECT convert(varchar, get...

[ubuntu]設定網卡為固定IP

修改網卡設定 sudo vi /etc/network/interfaces 修改如下, iface eth0 inet static address 172.16.200.100 netmask 255.255.255.0 gateway 172.16.200.1 dns-nameservers 8.8.8.8

[ubuntu] 執行apt-get update失敗

無法更新有幾種狀況, 1. server dns未設定,無法解析名稱 2. apt server無法連線 以下說每個解決方法: 1. server dns未設定,無法解析名稱 。檢查是否能ping到名稱 ping tw.yahoo.com 若無法解析,表示沒有設定DNS Server 。設定DNS Server vi /etc/network/interfaces 加上 dns-nameserver 8.8.8.8 168.95.1.1 2. apt server無法連線 修改 /etc/apt/sources.list, 置換其他連結

[SSRS]查詢SQL Agent內容

select j.name, s.* from msdb.dbo.sysjobs j inner join msdb.dbo.sysjobsteps s on (s.job_id=j.job_id) where j.name='agent_job_name' ;

[MSSQL][T-SQL]重新排版SQL語法

圖片
程式設計師最痛苦的莫過於要去看前人寫的SQL天書。複雜就算了,重點是每個人習慣的排版和縮排都不一樣。每次要認真看SQL前都要先花很多時間Enter..Enter..Enter的去排版。 其實網路上有許多這類的WEB工具,Google一下取前三名, Instant SQL Formatter FREEFORMATTER.COM SQL Formatter SQL Formatter 但有時考量資安問題,不想把SQL貼到網頁上,下面有幾套不錯的工具可以使用, ※ Notepad++ step-01 執行外掛管理員 step-02 在[Available]頁籤找到[Poor Man's T-Sql Formatter]套件,並按下[Install]進行安裝 step-03 下載套件並安裝 step-04 提示要重啟程式 step-05 重啟後,會發現外掛管理員已經出現剛剛安裝的套件 step-06 這時隨意打一串很亂的SQL step-07 執行[外掛\Poor Man's T-SQL Formmater\Format T-SQL Code] step-08 SQL就變美美的囉

MSSQL WITH(NOLOCK)

有時在查比較複雜的SQL時會發生效能不佳的況狀,一般都想到加Index,其實也可以用WITH(NOLOCK)來忽略檢查Table資料是否在Transction中。 SELECT * FROM table WITH(NOLOCK) 這語法可以降低Table Lock問題,但也有要注意的地方。因為他忽略不檢查資料是否在Transaction中,所以不管資料是否還沒commit或rollbak,均會被讀取到,也就是Dirty Read。使用時要看這結果是否會影響資料結果。 Reference Web: http://blog.xuite.net/linriva/blog/39534686-%5BT-SQL%5D+WITH+(NOLOCK)%3A+%E6%8F%90%E5%8D%87%E6%9F%A5%E8%A9%A2%E6%95%88%E7%8E%87%E5%92%8C%E9%81%BF%E5%85%8DLOCK%E7%99%BC%E7%94%9F+(%E9%98%B2%E6%AD%A2%E8%B3%87%E6%96%99%E9%81%B8%E5%8F%96%E6%99%82%E8%A2%AB%E9%8E%96%E6%AD%BB)--%E8%BD%89%E8%B2%BC

Android網頁Textbox不彈出鍵盤

有時因為欄位是要用Barcode刷入資料,所以當點到Textbox時希望不要彈出鍵盤。因為是系統特性,所以只能從Javascript下手。 會彈出鍵盤是因為欄位是屬於可編輯欄位,所以只要想辦法把欄位設為唯讀,再利用keypress來讀入輸入的每個字元,組合起來存入欄位,就可以達到我們要的效果。 以下為部份片段程式(這裡使用JQuery), <input type="textbox" class="NotShowKB" id="txtNormal" name="txtNormal" value=""  /> 在要控制的元件上加入class[NotShowKB]   $(document).ready(function(){         $(".NotShowKB").attr("readonly", "readonly");       //$(".NotShowKB").attr("disabled", "true");     $(".NotShowKB").click(function(){         $("#txtNowObj").val($(this).prop("id"));         $(this).css('background-color','yellow');     });     $(".NotShowKB").blur(function(){         $("#txtNowObj").val("");         $(this).css('background-color','transparent');     });     $(".NotShowKB").keypress(function(e){         var fieldVal = $(this).v...

Oracle DB Server安裝不同版本的ODAC元件

在Microsoft Windows Server環境上運作的Oracle資料庫, 若因為同時需要跑其他服務(如網頁服務), 而要使用到其他版本的元件(如ODAC), 若選擇原資料庫的安裝路徑, 會發現安裝不進去。 這時要選擇安裝至新目錄, 就可以安裝了, 而且其他服務也可以使用到新原件。

C# OleDbCommand使用Parameter時更新0筆(沒有錯誤)

圖片
sql = "select * from abc where a=:a and b=:b " _oleDbCmd.Parameters.AddWithValue("a", "aaaaa"); _oleDbCmd.Parameters.AddWithValue("b", "bbbb"); 一般使用sqlCommand的Parameter時, 因為有指定名稱, 所以傳值到Parameter時不需與SQL參數順序相同, 但因為OleDbParameter不支援名稱, 所以一定要一樣順序 Reference web: https://msdn.microsoft.com/en-us/library/system.data.oledb.oledbcommand.parameters(v=vs.100).aspx

Hyper-V Win7 P2V開機黑屏

使用win7安裝光碟開機後, 進入修復模式, 打開CMD, 輸入下面 指令修復, 再重新機就可以進入了。 bootrec /fixmbr bootrec /fixboot

Windows 7 無法執行Sysprep , 錯誤訊息:嘗試對電腦執行Sysprep時發生嚴重錯誤

打開 services.msc 然後將 Windows Media Player Network Sharing Service 此服務啟動類型設定為停用 重新開機 reference web: https://social.technet.microsoft.com/Forums/zh-TW/d413e630-faed-48c7-9ae2-337b14694f55/windows-7-sysprep-sysprep?forum=windows7cht

IIS無法使用dotNet Framework

網際網路資訊服務(IIS)管理員→網頁延伸服務 看不到ASP .NET v4.0的可能原因有 因為先裝.NET Framework 4.0,再裝IIS導致 解決方法:重新註冊ASP .NET v4.0 命令提示字元: 1. cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 #切換資料夾 2. aspnet_regiis.exe -i #安裝 ASP.NET (4.0.30319) 3. aspnet_regiis.exe -r #將 IIS 組態變更為使用這一版的 ASP.NET 4. aspnet_regiis.exe -c #複製這個版本 (4.0.30319) 的 ASP.NET 用戶端指令碼檔案 Reference Web: http://blog.xuite.net/zack_pan/blog/46705882-%E7%B6%B2%E9%A0%81%E5%BB%B6%E4%BC%B8%E6%9C%8D%E5%8B%99+%E7%9C%8B%E4%B8%8D%E5%88%B0ASP+.NET+v4.0

MSSQL 2008/2012 記錄檔檔案已滿的錯誤處理

執行下列語法可以壓縮LOG檔案: DBCC SHRINKFILE(Northwind_log,10) 若要截斷交易記錄(不再保留)可以切換為簡單復原模式。 --01 使用 BACKUP LOG ... WITH NO_LOG --01 將資料庫 Northwind 切換為「簡單復原模式」,便會自動截斷交易記錄。 ALTER DATABASE Northwind SET RECOVERY SIMPLE GO --02 若決定要備份交易記錄檔(*.ldf),再將資料庫 Northwind 切換回「完整復原模式」 ALTER DATABASE Northwind SET RECOVERY FULL GO reference web: http://sharedderrick.blogspot.tw/2009/03/transaction-log-for-database-is-full.html http://marco.easyusing.com/2012/08/sql-server-log.html

FileZilla Server無法啟動(Could not load TLS libraries)

圖片
FileZilla Server安裝在Windows上,發生無法開啟的狀況,錯誤訊息如下, 原因是Windows Patch少安裝了,只要到下面網頁安裝對應OS的Patch,重新啟動作業系統就解決了。 https://support.microsoft.com/en-us/kb/2533623 Reference Web: https://forum.filezilla-project.org/viewtopic.php?t=39838