發表文章

目前顯示的是 8月, 2023的文章

[C# Lambda] List使用方法

圖片
using System; using System.Collections.Generic; using System.Linq; public class MyClass { public string StringField1 { get; set; } public string StringField2 { get; set; } public int NumberField { get; set; } } class Program { static void Main() { List<MyClass> myObjects = new List<MyClass> { new MyClass { StringField1 = "A", StringField2 = "X", NumberField = 10 }, new MyClass { StringField1 = "B", StringField2 = "Y", NumberField = 20 }, new MyClass { StringField1 = "A", StringField2 = "X", NumberField = 30 } }; var groupedAndSelected = myObjects .GroupBy(obj => new { obj.StringField1, obj.StringField2 }) .Select(group => new { GroupFields = group.Key, SelectedFields = group.Select(obj => new { obj.NumberField }), Total = group.Sum(

ubuntu 指令

查詢本機IP ip addr show

[MSSQL]執行計劃

--清除資料庫執行計劃cache use 資料庫 alter database scoped configuration clear procedure_cache --查詢執行計劃cache select cap.usecounts as '使用次數'       ,cap.cacheobjtype as '快取類型'   ,objtype as '物件類型'   ,st.text from sys.dm_exec_cached_plans cap CROSS APPLY sys.dm_exec_sql_text(plan_handle) as st where st.text not like '%sys%'   and st.text like '%myparatest%' go 

Google Blogger 設定程式代碼顯示樣式[Google Prettify]

為了讓Blogger上的程式代碼增加可讀性, 可以使用[Google Prettify]的Javascript來格式化代碼。 - 支援多種程式語言 - 在Blogger上設定容易 Google Prettify設定說明如下, 詳細資料可以參考  Google Prettify 。 STEP-01  利用小工具[設定 HTML/JavaScript]加入 Goole Prettify Javascript - 標題: 輸入小工具名稱(依個人喜好) - 內容: 貼上Javascript設定 - 顯示這個小工具: 一樣要打開, 不然不會引用(有些部落格樣版不會有這個選項) <script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js?skin=sunburst"></script> skin可以參考 skin gallery 更換 STEP-02 預設程式代碼只會每5行顯示行號, 若要每行都顯示, 利用小工具[設定 HTML/JavaScript]加入下面CSS設定 <style> .prettyprint ol.linenums > li { list-style-type: decimal; padding-left:10px; } </style> STEP-03 在Blogger要顯示的代碼前後用<pre class="prettyprint linenums">...</pre>包起來 <pre class="prettyprint linenums"> void Main() { string a = "123456"; string b = a.Substring(0, 3); Console.WriteLine(b); } </pre> STEP-04 就完成了 void Main() { string a = "123456"; string b = a.Substr

[Synology][Docker]MSSQL

圖片
  分享使用Synology的Docker建立MSSQL資料庫的步驟。 * 安裝Docker套件 * 開啟Docker * 選擇[倉庫伺服器], 搜尋mssql, 因為找不到微軟官方, 所以找星號最多的datagrid版本下載映像檔 * 選擇[映像檔], 選擇剛剛下載的檔案, 並執行上方的佈署 * 建立容器設定 >> 網路: 選擇[與Docker Host使用相同網路], 這樣就不用再設定Port對應了 >> 一般設定:     @容器名稱: 可以修改為自己想要的名稱     @啟用自動重啟: 勾選 * 一般設定>進階設定 : 新增環境變數     @變數:  ACCEPT_EULA, 數值: Y     @變數:  SA_PASSWORD, 數值: sa密碼          需符合下列條件 至少 8 個字元 必需包含英文大寫、英文小寫、數字、非字母數字符號四者中的其中三種即可 * 儲存後, 等待建立及啟動容器 * 下載SSMS軟體, 並輸入NAS IP及sa登入密碼, 就可以成功連上MSSQL 參考網站: https://blog.csdn.net/weixin_30843121/article/details/113087883 https://titangene.github.io/article/docker-mssql-server-for-linux.html

[C# Lambda] 延遲查詢與直接查詢語法

 在 C# 中,當使用 Lambda 運算式進行查詢時,可以使用以下延遲執行方法(也稱為延遲載入方法): Where():定義查詢條件,但不會立即執行。 Select():選擇要返回的欄位,但不會立即執行。 OrderBy():按照指定欄位進行升序排序,但不會立即執行。 OrderByDescending():按照指定欄位進行降序排序,但不會立即執行。 ThenBy():對先前已排序的結果進行升序排序,但不會立即執行。 ThenByDescending():對先前已排序的結果進行降序排序,但不會立即執行。 GroupBy():根據指定欄位進行分組,但不會立即執行。 Skip():跳過指定數量的記錄,但不會立即執行。 Take():返回指定數量的記錄,但不會立即執行。 而以下是一些可以直接執行並返回查詢結果的方法(也稱為即時執行方法): Count():返回查詢結果的記錄數量。 Any():判斷查詢結果是否包含任何記錄。 All():判斷查詢結果是否所有記錄都滿足指定條件。 First():返回查詢結果中的第一個記錄。 FirstOrDefault():返回查詢結果中的第一個記錄,如果沒有符合條件的記錄,則返回 null。 Single():返回查詢結果中的單個記錄,如果查詢結果不只一條記錄或沒有符合條件的記錄,則引發異常。 SingleOrDefault():返回查詢結果中的單個記錄,如果查詢結果不只一條記錄,則引發異常;如果沒有符合條件的記錄,則返回 null。 Max():返回查詢結果中指定欄位的最大值。 Min():返回查詢結果中指定欄位的最小值。 Sum():返回查詢結果中指定欄位的總和。 Average():返回查詢結果中指定欄位的平均值。 ToList():返回查詢結果並轉型為List(<T>)

[C# Lambda] Where語法與SQL語法對應

 使用 Lambda 運算式進行查詢時,可以使用 Where() 方法定義查詢條件。以下是一些 Where() 方法和相應的 SQL 語法對應項目: 等於 (==):使用 x => x.SomeProperty == someValue 進行查詢,對應的 SQL 語法為 WHERE SomeProperty = 'someValue'。 不等於 (!=):使用 x => x.SomeProperty != someValue 進行查詢,對應的 SQL 語法為 WHERE SomeProperty <> 'someValue'。 大於 (>):使用 x => x.SomeProperty > someValue 進行查詢,對應的 SQL 語法為 WHERE SomeProperty > someValue。 小於 (<):使用 x => x.SomeProperty < someValue 進行查詢,對應的 SQL 語法為 WHERE SomeProperty < someValue。 大於等於 (>=):使用 x => x.SomeProperty >= someValue 進行查詢,對應的 SQL 語法為 WHERE SomeProperty >= someValue。 小於等於 (<=):使用 x => x.SomeProperty <= someValue 進行查詢,對應的 SQL 語法為 WHERE SomeProperty <= someValue。 包含 (Contains()):使用 x => x.SomeProperty.Contains(someValue) 進行查詢,對應的 SQL 語法為 WHERE SomeProperty LIKE '%someValue%'。 開始於 (StartsWith()):使用 x => x.SomeProperty.StartsWith(someValue) 進行查詢,對應的 SQL 語法為 WHERE SomeProperty LIKE 'someValue%'。 結束於 (EndsWith()):使用 x =>

[MSSQL]系統變數

  @@CONNECTIONS:返回當前伺服器連線的總數。 @@CPU_BUSY:返回 CPU 的繁忙時間(以毫秒為單位)。 @@IDLE:返回伺服器閒置的時間(以毫秒為單位)。 @@IO_BUSY:返回磁碟 I/O 操作的繁忙時間(以毫秒為單位)。 @@PACK_RECEIVED:返回自伺服器啟動以來已接收的協議數。 @@PACK_SENT:返回自伺服器啟動以來已傳送的協議數。 @@PACKET_ERRORS:返回自伺服器啟動以來出現的網路錯誤數。 @@TIMETICKS:返回自伺服器啟動以來的時鐘滴答數。 @@TOTAL_ERRORS:返回自伺服器啟動以來出現的所有錯誤數(包括網路錯誤)。 @@TOTAL_READ:返回自伺服器啟動以來讀取的所有頁數。 @@TOTAL_WRITE:返回自伺服器啟動以來寫入的所有頁數。 @@VERSION:返回伺服器版本號碼。 @@LANGUAGE:返回當前語言設定。 @@SPID:返回當前執行緒的 ID 號碼。 @@SERVERNAME:返回伺服器名稱。 @@SERVICENAME:返回 SQL Server 服務名稱。 @@LOCK_TIMEOUT:返回當前設定的鎖定逾時時間。 @@MAX_CONNECTIONS:返回當前伺服器允許的最大連線數。 @@MAX_PRECISION:返回伺服器允許的最大精度。 @@NESTLEVEL:返回目前的執行階層。 @@OPTIONS:返回目前設定的選項。 @@DATEFIRST:返回目前設定的每週第一天是星期幾。 @@DBTS:返回目前資料庫的時間戳記。 @@FETCH_STATUS:返回最近一次 FETCH 陳述式的狀態。 @@IDENTITY:返回最近一個 INSERT 陳述式產生的自動增值欄位值。 @@ERROR:返回最近一個錯誤的錯誤號碼。 @@ROWCOUNT:返回最近一個執行的 T-SQL 陳述式所影響的列數。 @@TRANCOUNT:返回目前交易的階層數。 @@PROCID:返回目前正在執行的預存程序或觸發程序的 ID 號碼。 @@REMSERVER:返回目前連線的遠端伺服器名稱。 @@ROWGUID:返回目前的行全域唯一識別碼 (GUID)。 @@SERVERNAME:返回伺服器名稱。 @@TEXTPTR:返回 TEXT、NTEXT 或 IMAGE 資料類型的指標。 @@T

[C# Lambda] 比對2個List差異 (List內容是多欄位Class)

class GroupedItem { public string A { get; set; } public string B { get; set; } public int TotalC { get; set; } } class Program { static void Main() { List<GroupedItem> list1 = new List<GroupedItem> { new GroupedItem { A = "A1", B = "B1", TotalC = 10 }, new GroupedItem { A = "A2", B = "B2", TotalC = 15 }, new GroupedItem { A = "A3", B = "B3", TotalC = 20 } }; List<GroupedItem> list2 = new List<GroupedItem> { new GroupedItem { A = "A1", B = "B1", TotalC = 10 }, new GroupedItem { A = "A2", B = "B2", TotalC = 16 }, new GroupedItem { A = "A4", B = "B4", TotalC = 25 } }; var groupedAndSelected1 = list1.GroupBy(item => new { item.A, item.B }) .Select(group =&

[C#] Application編譯或開始執行時, App.config沒有更新到exe.config

 刪除 bin 和 obj 下的所有檔案, 再重新執行後, 就會正常更新了。

[C# Lambda] DataTable.AsEnumerable()使用範例

範例 0. 篩選 class Program { static void Main() { DataTable table = GetSampleDataTable(); var filteredRows = table.AsEnumerable() .Where(row => row.Field<int>("Age") > 25) .ToList(); foreach (var row in filteredRows) { Console.WriteLine($"Name: {row["Name"]}, Age: {row["Age"]}"); } } static DataTable GetSampleDataTable() { DataTable table = new DataTable(); table.Columns.Add("Name", typeof(string)); table.Columns.Add("Age", typeof(int)); table.Rows.Add("Alice", 28); table.Rows.Add("Bob", 22); table.Rows.Add("Charlie", 30); table.Rows.Add("David", 25); return table; } } 1. 排序(Sorting) var sortedRows = table.AsEnumerable() .OrderBy(row => row.Field<int>("Age")) .ToList(); foreach (

C# EntityFramework DBContext Timeout

public class MyContext : DbContext { public MyContext () : base(ContextHelper.CreateConnection("my connection string"), true) { ((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 300; } } 逾時值 (以秒為單位)

Entiry Framework DB Default Value

  Oracle : 在DB Column直接設定Default Value MSSQL : 在DB Column設定Default Value, 並且需調整DBSet Class, 在該欄位上方新增 [DatabaseGenerated(DatabaseGeneratedOption.Computed)] public virtual DateTime CreatedDate { get; set; }

ASP.Net MVC Rasor HTML Help 範例

  @{ ViewBag.Title = "Sample06_RasorHelp"; } <h2>Sample06_RasorHelp</h2> <h3>文字框(input type="text")</h3> @{ string defaultValue = "Default Value"; } <h5>有預設值</h5> @Html.TextBox("textBoxName", defaultValue, new { @class = "form-control" }) <h5>預設值為空</h5> @Html.TextBox("textBoxName", null, new { @class = "form-control" }) <hr /> <h3>下拉選單(select)</h3> <h5>有預設值</h5> @{ List<SelectListItem> items = new List<SelectListItem> { new SelectListItem { Text = "Option 1", Value = "1" }, new SelectListItem { Text = "Option 2", Value = "2", Selected = true }, new SelectListItem { Text = "Option 3", Value = "3" } }; } @Html.DropDownList("dropdownName", items, "Select an option", new { @class = "form-control&q

ASP.NET Rasor語法

  @Html.Raw(columnDesc1) columnDesc1變數內容若有HTML Tag, 會以HTML方式呈現, 而非資料呈現, 如<br/>會換行而非直接顯示<br/>文字