搜尋此網誌

顯示具有 C# 標籤的文章。 顯示所有文章
顯示具有 C# 標籤的文章。 顯示所有文章

2024年5月5日 星期日

Ubuntu 安裝 .NET Core 並新增 Console 專案

緣起:


    .Net Core 是支援跨平台的,所以我想要學習怎麼在 linux 上使用它,之後如果能弄個 asp  的 project 在 raspberry pi 上跑,那應該㑹很酷,所以我想從最基本的安裝 SDK 與創一個 Console 專案開始。

2024年5月2日 星期四

C# Linq 的 join 與 Group by

原起:


    不久前,我們 3A 站台有出現資料重複顯示的問題,去查才發現是發生在 LINQ 的 join 上,這邊直接開 Console 範例程式講解,用 class 來代表資料表的欄位架構,有兩個 class,Performance 跟 Review

internal class Program
{
    class Performance
    {
        public int SN { get; set; }
        public string Name { get; set; }

        public Performance(int sN, string name)
        {
            SN = sN;
            Name = name;
        }

        public override string ToString()
        {
            return $"SN:{SN}, Name:{Name}";
        }
    }

    class Review
    {
        public int PerformanceSN { get; set; }
        public string Name { get; set; }

        public bool IsPass { get; set; }

        public Review(int performanceSN, string name, bool isPass)
        {
            PerformanceSN = performanceSN;
            Name = name;
            IsPass = isPass;
        }

        public override string ToString()
        {
            return $"PerformanceSN:{PerformanceSN}, Name:{Name}, IsPass:{IsPass}";
        }
    }
}

2024年4月16日 星期二

C# LeetCode 23. Merge k Sorted Lists (二)

緣起:


    我上篇文章寫完後,有拿給志璿老大看,他看完後,就問了我問題


    所以我就開始思考,要怎麼讓程式快點


    我這時才意識到,原來這題就是做到一半的 Merge Sort,所以就打算用 Merge Sort 來重寫程式

C# LeetCode 23. Merge k Sorted Lists (一)

緣起:


    前陣子有在看 jserv 的 "你所不知道的 C 語言: linked list 和非連續記憶體",看到他拿 LeetCode 的題目來當 pointer to pointer 的實作範例,我看著看著,就想說要來寫看看題目。

    merge 兩個 list 比較簡單,所以就跳過。由於工作上是使用 C# 來開發,所以我解題也就用 C# 來寫了。

    要解的題目在這邊

2024年3月13日 星期三

C# DLL 專案與 DLL 內的檔案讀取

緣起:


    我們公司的程式有個專案,它是一個 DLL 專案,用來管理一些前後台會用到的 js、css、image 資源,只要 build 完,它就變成一個 DLL 檔,資源都包含在裡面。如果那個專案裡的檔案有被新增或修改,到時要更新的話就只要搬 DLL 檔去覆蓋就好,非常的方便。

    把東西都包進 DLL 裡,然後再寫個 class 當個介面來存取 DLL 檔的資源,感覺是個很實用的做法,所以想學起來。

    這篇想要寫個測試的小程式來達到跟我們專案一樣的功能,從 DLL 裡把檔案給取出。

2024年3月11日 星期一

C# NPOI 套件與 ASP WebForm 下載 xls 檔

緣起:


    最近有完成一個緊急任務,修改購物車的訂單匯出功能,那個功能的初版是我們主任寫的,它會把 sq的訂單資料寫到 excel 檔案裡,讓用戶可以下載。

    我注意到程式裡有用到一個叫 NPOI 的套件,程式都是用它來處理 Excel 檔。學起來感覺會蠻有用的,所以就特別為它寫了這篇文章來記錄。

    我會先用 Console 專案來測試 NPOI 的基本功能,然後再寫一個 WebForm 的專案,讓使用者點擊頁面上的按鈕後可以下載 xls 檔。

2024年3月6日 星期三

C# FileStream 與 ASP HttpPostedFile

緣起:


    這幾天在看我們程式的信箱功能程式碼,注意到它有上傳附件的功能,上傳完的附件會傳到後台,還會專門開個資料夾放那些附件。蠻特別的,它不是傳到 ws 主機,然後再把檔案路徑記到資料表。

    我注意到在上傳檔案的部份,它有用到 Request.Files 來取得使用者上傳的檔案,然後讀取檔案、把檔案給寫到 Server 端的資料夾的部份則是用到 C# 的 Stream。覺得這些功能蠻實用的,而且自己好像也還沒實際寫過從前台上傳檔案到 Server 的程式,所以就試著寫了一次,順便紀錄。

2023年11月23日 星期四

ASP Texearea 的換行

緣起:


    不久前在弄國發會的案子,在弄後台文字編輯時,想要 Multiline TextBox 裡的文字在存進資料表裡的時候,能依照文字能按照畫面上的樣子,看起來斷行的地方有斷行。


2023年5月30日 星期二

C# 為 Enum 加入 DescriptionAttribute

緣起:


    看專案的程式碼時,看到同事有為他自訂的列舉設定 DescriptionAttribute,還有寫個 Method 可以取得此列舉 DescriptionAttribute 的 Description,覺得這東西看起來很實用,所以就想抄起來。


2023年4月17日 星期一

C# CheckBoxList 與 Enum

緣起:


    我回到公司不久後,被拉入一個新的案子裡,在四月底前有一個功能要完成,今天有把它給完成了,不過還沒驗收就是了。我在這個任務裡學到了 CheckBoxList 跟 Enum 的一些用法,所以想寫個文章記錄。



    (想不到有什麼圖片能放,但又不想讓這區太空白.....



2022年10月20日 星期四

ASP 內嵌運算式

緣起:


    一個普通的 asp webform 大致上分兩個部份,aspx 跟 aspx.cs,aspx 是要呈現給使用者的頁面,aspx.cs  是寫後端的邏輯 (處理使用者送過來的值之類的),要在前端顯示後端某個變數值時,我通常都會在前端加一個 <asp:Literal runat="server" ID="testLiteral"></asp:Literal>,然後在 cs 檔的 Page_Load 事件裡,把 testLiteral.Text 指定成我想看的變數值 (轉字串)。

    我在公司的專案程式碼裡很常看到,aspx 檔裡有種特別的標記,長下面那樣,它寫這樣就能在前端顯示後端的變數值了。

<%=後端的某個變數 %>


    之前有買一本介紹 ASP MVC 的書,它裡面有個東西跟上述的功能很像,叫 Razor,不過它會寫在 @{} 裡,我有試過,它沒辦法在 Webform 裡使用,Webform 好像只能寫 <%= %>。重點是,我不知道這種標記叫啥名字 ,不知關鍵字要從哪打起,折騰了好一會後,最後也不知是怎麼成功找到的,反正我最後得知,這個功能叫 "內嵌運算式" (embedded code)。

2022年10月17日 星期一

ASP dbml 產生自訂程式碼

緣起:


    我今天在上班時又不知道要幹啥了,早上有去問我的主管說,我可以幫什麼忙,他說,他會跟專案經理討論後再給我工作。我上午邊寫 blog 邊等,沒等到任務派下,到現在已經下午了,我卻什麼東西都沒做,心裡有些緊張,我總不能這樣一直混下去,有夠難看的,但又不想要漫無目的的看著專案的程式碼,後來想到,有個東西是我想認識的,而且跟我們的專案很有關系,就是 linq to sql 的工具。

    我們的專案在使用資料庫時,它好像都是使用功具生成一個相對應的類別,再對每個生成的資料表寫一個與之對應的類別來擴充方法 (partial 類別),接下來想要對某個資料表做存取時,只要在程式裡新增相對應的實體並呼叫方法就能對資料表做存取,非常的方便。

    在這邊我想要實作整個流程,創造自己的資料庫 -> 生成 dbml -> 生成 C# class -> 用生成的 class 存取資料庫。我現在還是對整個 .NET 框架的資料庫使用超模糊的,我甚至講不太清楚我在用的框架技術叫啥名字 (好像是 ADO.NET 吧),所以,我就盡量只記錄自己的操作跟結果,其它部份應該是多講多錯 = =。

2022年10月14日 星期五

C# LINE Messaging API 廣播訊息

緣起:


    把 LINE 的 APP 建立好後,接下來就可以開始寫程式了,這次比較不一樣的是,我已經有個其它工程師寫好的,現成的程式可以參考了。我稍微看了看程式後,發現,其實它的邏輯跟我之前在弄那些社群軟體的 API 使用方法很像,一樣弄個 POST,然後 Header 設個 Authorization Bearer,content body 傳個 json 出去就完成了,不過,他的寫法跟我的有些差異,有東西能學。

    程式碼裡面還有放三個連結給我參考


2022年9月27日 星期二

C# HttpWebRequest POST x-www-form-urlencoded

緣起:


    今天下午開始正試把那些 API 的程式放到專案裡 (雖然是開個新的頁面來做),在用 C# 做 Facebook API 的 PO 文,雖然之前有紀錄,不過那是用 POST Man 做的,之前 C# 寫的 Twitter API PO 文,POST ContentType 使用的是 application/json 跟 multipart/form-data,沒有用過 application/x-www-form-urlencoded,今天在寫 C# 時有點卡卡的,所以想記錄一下它的寫法。

2022年9月22日 星期四

C# NewtonSoft.Json 解析 json 字串

緣起:


    突然想到,我的程式如果要處理那些 Facebook API 回傳的資訊的話,我必須要有方法能解析那些 json 的字串,所以今天在開始研究 API 前,我想先學會 C# 解析 json 的方法。


2022年9月20日 星期二

C# Twitter API 上傳圖片

緣起:


    接續這一篇,今天滿幸運的,上午時就把圖片上傳 Twitter 的 C# 程式搞定,面對那個看起來有點複雜的 form-data 居然沒卡太久,真是可喜可樂。

發現沒什麼封面圖能放,所以就放我昨天買的麻糬

2022年9月19日 星期一

Twitter API 上傳圖片並加入 Tweet

緣起:


    今天上午在試跑上個禮拜寫好的 C#,結果又遇上 authorization 的問題,上次好像不小心把一些東西給改掉,花了不少時間才把錯給找出來。今天下午有研究出上傳圖片的方法,滿開心的,記錄完後要繼續研究把它寫成 C# 程式來運作。


2022年9月16日 星期五

C# Twitter API 發送 Tweet

緣起:


    接續這篇,今天上午弄好 signature 後,下午接著繼續研究怎麼用 C# 把我的那些 OAuth 資料送到 Twitter API 那邊,過程還算順利,只有一個地方卡比較久,就是沒把 hash 出來的值做 base64 的編碼,導致在傳 http 時一直出現 401 的 Exception。



C# 產生 Twitter API OAuth1.0 的 signature

緣起:


    好的,本來這東西我昨天應該就該弄好的,但因為發生了點事,導致我那天心情都很低落,整天都在 LINE 的親友群上跟家人們諮詢 (當了一天的薪水小偷),不過別擔心,我撐過去了,Anyway,今天又有進展了,續這篇文章,雖然能用 PostMan 送 tweet 了,但我需要用 C# 寫程式來做這件事,Request Header 有一個很重要的值,叫 oauth_signature,他必需經過計算才能得到。

    官方文章有很詳盡的教學,我都是照著這篇文章做的。