Tag: C#

0

讀取客製化Web.config / app.config的element

通常在app.config都是用原本預設的element,不過,今天為了自己的元件的設定,必須透過客製化的element作為元件的config,好久沒有研究這部分,所以,研究一下,終於被我弄出來,因此,在這紀錄一下,讓有後續想用的人可以參考 自訂.config標籤 這裡自訂標籤如下,主要標籤分為三層,第一層Token為最外面標籤,等同於元件要開始讀取此設定的root位置,第二層TokenTarg

0

Entity Framework發生『Validation failed for one or more entities. See 'EntityValidationErrors' property for more details』

使用Entity Framework在處理資料存入資料庫是非常方便,但是缺點就是因為太自動幫我們都做好很多處理,導致有時候發生問題,就不知道問題在哪邊增加Debug的困難性,例如下圖,當我使用SaveChanges,就出現這個Exception,但是,這錯誤實在不知道在那邊,從這exception也無法明確地確定問題所在 不過,大概心裡有數因該是資料跟欄位上有問題,可是,以這個案例來說,資料表

0

控制IIS Application Pool

在使用系統方式去針對Application Pool進行控制,可以遠端開起停止等動作。這樣就可以方便管理一堆伺服器中的每個網站這裡依舊使用DirectoryEntry類別來進行此動作。並搭配Invoke方法。 首先須取得要控制的Application Pool Name1string appPoolPath = @"IIS://HostName/W3SVC/AppPools/" + Applic

0

顯示IIS站台列表的實體位置路徑

當我們需要管理很多台Server中的每個Web Site時日子久了難免會忘記該Web Site對應虛擬目錄路徑,因該這次透過顯示IIS所有站台列表方式,我們可以找到每個網站所對應的虛擬目錄位址 首先還是需要找出IIS中的每個網站及下面的虛擬目錄。前端程式碼可以參考顯示IIS所有站台列表作法 使用DirectoryEntry的Properties屬性就可以找到其對應虛擬目錄位址。Properti

0

西元日期轉換成民國日期或是農曆日期

一般取得日期大都是採用西元年方式,但是,在某些運用方面還是必須顯示成為民國日期甚至是農曆的日期來表示12DateTime dt = DateTime.Now;Console.WriteLine(string.Format("{0}", dt.Year)); 取得民國年可以先算出西元年再去扣掉1911得到,不過,在C#內有另一種方式取得相對應的民國年,就是用System.Glo

0

動態呼叫不同種類的Web Service

呼叫Web Service最簡單方式就是在專案中把Web Service參考進來就可以使用。不過,今天要設計一個是可以把Web Service資訊放入資料庫中,系統可以針對不同需求呼叫所需要的Web Serivce的Method並傳入參數,取得對應的值,大致架構如下: 這樣好處在於當Web Service是其他單位設計時候,其他同仁可以專注在Web Service開發,開發完畢後將相關資訊註冊到

0

用C#改變文字檔的編碼方式

一般來說在讀寫文字檔時候很少會注意文字檔案的編碼方式,畢竟都在windows環境,怎樣都可以把文字檔內容讀出來不過,當今日文字檔是做為資料傳遞工具時候,編碼方式就會很重要。剛好與到一個案例,其實在程式中可以快速進行編碼轉換。例如原本編碼如下圖: 來源檔案編碼都不相同,但是想要把output檔案轉成統一格式,以這個案例為例,想要把檔案統一轉為UTF-8格式。可以這樣寫一個簡單的轉換程式1234

0

IEnumerable轉成DataTable

IEnumerable<T>這個型別在Framework3.5之後開始常用,且Linq語法對於某些程式撰寫與處理變成方便許多,甚至在處理像是Linq to SQL等模式也很方便,但是不可諱言的,在企業中很多系統往往還是需透過Datatable或是Dataset物件進行物件傳遞,尤其在用完IEnumerable(ex:var)之後要在系統進行資料傳遞或是後續處理時,要用for或是for

0

C# 無條件進位,無條件捨去及四捨五入寫法

雖然程式很簡單,但是,一時要用還真的不知道要怎樣寫,畢竟現在一個程式開發者要記憶的東西太多,所以,不時時刻刻記憶一些東西還真的不行呢 無條件進位 123double s = 100;int result = 0;result = Convert.ToInt16(Math.Ceiling(s / 3)); 無條件捨去 123double s = 100;int result = 0;result

0

CommittableTransaction & TransactionScope 用法

在程式撰寫中常常會遇到需要做資料Transaction的機制,當有異常時需要透過Rollback還原。在.NET中有兩種Transaction模式分別是明確交易與隱含交易。通常使用的方式分別為CommittableTransaction & TransactionScope TransactionScope:類別提供一個簡單的方式,讓您不用與交易互動,即可將一段程式碼標記為參與交易,此

0

將物件轉換成XML檔案

一般講到檔案儲存,大都是可被識別之內容的檔案居多,主要是這些檔案還是可以被某些程式開啟,不過,這次遇到卻是需要把物件作為檔案格式儲存下來,後續有需要用到時候,再把這些物件取出。不過為啥要這樣做呢? 舉例:一個List<Dataset>物件來說,其內容在有限時間區間內是會被重複利用,若是,每次用到都要再重新取得資訊,是相當浪費資源,所以,會先將此物件以檔案型態存放,有用到就直接取得檔案

0

將Datatable轉換成Vba可接受的RecordSet類別

由於目前工作地方大部分程式還是建構在EXCEL中,使用VBA撈取資料庫資料並做資料運算。但是,將資料撈回到EXCEL再用VBA做運算效能比較差且又擔心USER在運算邏輯的程式亂做修改,造成資料有誤。想說改用Excel呼叫Web Service,把邏輯運算都靠Web service做好,再把整包資料丟回到EXCEL這樣就可以避免上述一些問題。 不過,由於在.NET環境中主要都是ADO.NET架構,

0

取得當前程式執行階段的Method Name

當你在開發或維護大型程式系統時,其系統中的各項Method錯綜複雜(就是程式很亂),又有馬上需要 Trouble shooting壓力,這時候就很需要知道,程式是執行到哪一個Method,方便進行Trace。通常我會把這功用下列兩個地方: 系統發生Exception地方,需記錄知道哪一個Method發生問題 系統Kernel的地方,以方便了解資料進出是發生在哪一個Method 首先參照下面

0

如何序列化Datatable / Dataset物件

在做SOA機制上,有需要接受Datatable或DataSet傳送給SOA平台,但是,物件無法這樣直接傳遞,必須先做過序列化才有辦法將物件傳遞出去。 DataTable 序列化 123456789internal string DatatableSerialize(System.Data.DataTable _dt){ System.Xml.Serialization.Xml

0

將VBA的RecordSet轉換Datatable類別

寫一篇關於將Datatable轉換成Vba可接受的RecordSet類別,如果把結果顛倒過來呢?這也是可以的。其主要目的是讓Excel內的資料上傳後,可以透RecordSet 轉換成 Datatable解析其中資料內容或是讓.Net可以快速針對內容作處理。 主要需要靠ADODB.Stream&ADODB.Recordset物件幫助。 12Type adoStreamType = Typ

0

取得該日期之對應週別

取得日期對應週別,這個功能滿有用,主要是可以識別目前日期是整年的第幾週。當然,在某些公司內的週期定義,可能不是所謂的週日到週六為一週,有可能是上周五到下周四為完整一週,這樣去計算週期就會跟一般有所不同 這邊先講一般正常週別的作法,必須用到System.Globalization.Calendar類別。要宣告這個物件跟一般物件不太一樣,它必須透過CultureInfo.Calendar屬性來做宣告

0

使用Linq的Join / right Join / Left Join

用Join來做資料聯集,在T-SQL指令是常會用到的一種語法,不過,對於常寫SQL語法的人要轉換到Linq語法時,往往對於Join這語句的操作就常會感到比較陌生也不習慣要怎樣使用。因此,這邊簡單說明一下,要如何操作Linq的join語法 資料表A 資料表B Join 先來做兩個資料的Join,把資料表B去顯示對應的資料表A的WeekName,Join是算是Linq比較簡單易懂的,其條件為透過資料

0

如何字串是否包含中文

最近做一個小功能,要判斷傳入字串是否含有中文,再作後續的動作。這邊記錄判斷邏輯的寫法,程式的邏輯為當傳入參數只要是字串中有任何一個中文字都會回傳True。 要多考慮中文的Unicode範圍Unicode字元範圍 3400~4DFFh:中日韓認同表意文字擴充A區,總計收容6,582個中日韓漢字 4E00~9FFFh:中日韓認同表意文字區,總計收容20,902個中日韓漢字。 A000~A4FFh:

0

使用XML Query一次新增多筆資料

對於一次將多筆資料新增或是更新到同一個資料表,有很多種方法 利用While + insert into 指令 這種方式資料庫連線需要開開關關,是非常消耗效能的,除非是不得已情況下,不建議採用此方式進行 利用ADO.NET底層方式加上Data Table或是Data set方式 這種方式透過ADO.NET幫我們做掉這些步驟,但是,有時候卻因為太自動化,導致在需求會有不敷使用 XML Quer

0

C# 使用For和Foreach讀取Datatable每筆資料對照寫法

早期各種程式語法針對迴圈寫法,總是用for來實作,這東西真是好用且還歷久不衰,不過,到了開始有Foreach之後,很多迴圈寫法都會改用Foreach實作,畢竟,Foreach算是好物之一。但是,因為長時間習慣用for語法,要一時改變還真不簡單,所以,趁現在趕快紀錄一下避免忘記 採用For迴圈方式讀Datatable,其中邏輯是要判斷不是第一筆要處理的相關邏輯程式1234567891011121