跳到主要內容

發表文章

目前顯示的是有「.Net程式設計」標籤的文章

RDLC中使用子報表

最近在處理報表時發現一個問題,就是子報表的設定,在主報表中可以加入子報表,如果只有根據MSDN官方的範例去撰寫,會發現其實在運行的時候會發生錯誤,錯誤訊息[An error occurred during local report processing. Value cannot be null. Parameter name: value ],經過了同事的協助後,終於解決了這個問題,原來魔鬼真的藏在細節中。

DataGridView欄位統一格式化

最近的工作內有一個需求,就是由於專案中有許多呈現資料的DataGridView,而其中的欄位需要呈現的包含金額、數字或者日期等格式,若要一個個的設定格式,如果有一天格式突然變更,可能就要苦工做到死,如何讓專案中的這些格式都統一就成了一個問題,經過了一番查找,發現可以透過DataGridView.CellFormatting Event來解決這個問題。

Windows Form 設定紀錄

在開發Windows Form中,總是會有些設定值不常用會忘記,所以特別透過這篇文章把他記錄下來。

JSON POST 字元編碼錯誤解決

如過將JSON透過POST方式傳遞時,由於希望處理特殊符號,所以通常會宣告 HttpWebRequest.request.ContentType = "application/x-www-form-urlencoded"; 這是告知這個內容已經有經過urlencod了,但是如過直接將內容傳遞,包含某些特殊符號的內容,就會發生錯誤如:Date資料的 + 號字元或者URL中常帶入的Query String,如 webpage.aspx?var=parm 這類的字串,POST之後就會發生錯誤。

DataContractJsonSerializer DataTime 例外錯誤

當透過 DataContractJsonSerializer 將 Json字串 與 物件做序列化與反序列化時,發現了DateTime型別的[DataMember]會出現執行例外的問題,而這個問題的發生是因為DateTime預設值所發生的:

修改App.config中的EntityFramework的連線設定

由於在產品開發中使用了EntityFramework,而Release給使用者安裝的資料庫有可能會因為使用者的關係而有所異動,因此考量此一問題,因此要提供給使用者修改Config中的EntityFramework的功能,然而看了許多的資料,發現要建立EntityFramework的ConnectionString格式的內容不難,要修改App.config的設定也不難,但是這兩件事要同時完成就有需要注意的地方。

Windows Form Menu 動態建置

話說在 Web Form 中如果要動態產生 Menu 連結到網頁,其實實作還蠻容易的,只要把對應的連結處理好就可以,但在 Windows Form 中如果要動態產生 Menu 就比較複雜如果硬要寫的話,處理方法也有可是程式就會跟老太婆的裹腳布一樣又臭又長,因此在這邊與另一位同事 Kyle 討論後,有了以下的想法,來解決動態載入Menu的問題。

C#中如何列出本機IPv4的位址

在撰寫C#程式中,我們通常可以透過如以下方法來取得本機的所有IP位址。 using System.Net; //加入 using System.Net.Sockets; //加入 /*------ 要先using上面兩個Class ------*/ /*------ Method Start ------*/ private static IPAddress[] getIPList() { return System.Net.Dns.GetHostEntry(string.Empty).AddressList; } /*------ Method End ------*/ 但目前IPv4仍然是主流,IPv6僅是作業系統提供的功能,並未實際被使用,因此上述Method所取得的IP Address,還是不符合使用,如何將取得的IP Address僅列出IPv4的部分就需要加點工了,幸好.Net Framework中已經幫你解決了這個問題,我們僅需要透過Array.FindAll這個Method來查找IPAddress[] 中的AddressFamily符合AddressFamily.InterNetwork,只要符合的IP Address就是IPv4的位址。 using System.Net; //加入 using System.Net.Sockets; //加入 /*------ 要先using上面兩個Class ------*/ /*------ Method Start ------*/ private static IPAddress[] getIPv4List() { IPAddress[] ipv4Addresses; ipv4Addresses = Array.FindAll(Dns.GetHostEntry(string.Empty).AddressList, a => a.AddressFamily == AddressFamily.InterNetwork); return ipv4Addresses; } /*------ Method End ------*/

安裝撰寫好的 Windows Service (手工版)

1.建立執行服務的 Windows 帳戶 建立名為 [帳戶名稱] 的新本機使用者帳戶。輸入密碼,並選取 [密碼永久有效] 核取方塊。 在 [系統管理工具>] 程式群組中,按一下 [本機安全性原則]。 使用 [本機安全性原則>] 工具,授予新帳戶 [以服務方式登入] 的權限。 2. 安裝 Windows Service 這個程序會使用 installutil.exe 公用程式安裝 Windows 服務,然後再啟動該服務。 開啟命令視窗,並將目錄變更為 [Service檔案所在目錄]。 執行 installutil.exe 公用程式以安裝服務。 installutil.exe  [Service檔案] 在 [設定服務登入] 對話方塊中,請輸入先前在程序1 中所建立帳戶的使用者名稱和密碼,並按一下 [確定]。 檢視 installutil.exe 公用程式的輸出,並確認已正確地安裝服務。 3.移除 Windows Service 開啟命令視窗,並將目錄變更為 [Service檔案所在目錄]。 執行 installutil.exe 公用程式以安裝服務。 installutil.exe  /u  [Service檔案] 在 [設定服務登入] 對話方塊中,請輸入先前在程序1 中所建立帳戶的使用者名稱和密碼,並按一下 [確定]。 檢視 installutil.exe 公用程式的輸出,並確認已正確地安裝服務。