Tag C#

[DB2] เมื่อ DateTimeOffSet ของ C# ไม่สามารถจัดเก็บตรงๆได้ใน DB2

IBM DB2

พอดีได้เข้ามาชวยแก้ปัญหาของน้องในทีมครับ เนื่องจากไปเจอว่า Library ที่ตั้ง Schedule ของ C# มันต้องการ Parameter ที่เป็น DateTimeOffSet แต่ DataType นี้ มีนดันใช้งานได้กับ MS SQL Server เท่านั้นครับ กลับมาดูที่ DateTimeOffSet ดีกว่า มันเก็บอะไรบ้าง โดยแบ่งได้ 2 ส่วนครับ DateTime พวก วันที่ และเวลา หรือ ถ้ามองโดยทั่วไป คือ TIMESTAMP ครับ OffSet พวก TimeZone บอกโซนเวลา เช่น…

[.NET] MSBUILD error MSB4236: The SDK ‘Microsoft.NET.Sdk’ specified could not be found.

C# Logo

เครื่อง Build Jenkins ของ .NET หลังจาก Build เสถียรมาได้พักใหญ่ๆ หลังย้าย Code มาใช้ Git แล้ว วันนี้มี Error จากเครื่อง Build แจ้งมา ดังรูปครับ พอเข้าไปดู Console Log ของ Jenkins ระบบแจ้ง Error มา ดังนี้ครับ “D:\01GITMAIN\DSApp-Dev.sln” (Clean target) (1) -> “D:\01GITMAIN\DS.Admin.UI\DS.Admin.UI-Dev.csproj” (Clean target) (101:5) -> “D:\01GITMAIN\DS.Admin.DTO\DS.Admin.DTO.Standard.csproj” (GetTargetFrameworks…

[.NET] DevExpress เมื่อ Export ข้อมูลใน Grid มาเป็นไฟล์ Excel คอมม่า ( , ) หาย และไม่แสดงเป็นตัวเลข

สำหรับปัญหานี้เป็นปัญหาที่ท้าทาย และหาข้อสาเหตุของปัญหายากมากครับ เนื่องจากที่บริษัทได้ Upgrade ตัว DevExpress แบบก้าวกระโดดครับ ของเดิมเวอร์ชัน 13.1 ชองใหม่เวอร์ชัน 20.2 ห่างกันตั้ง 7 เวอร์ชัน นอกจาก API ที่ถูกยกเลิก(Deprecate) แล้ว มันยังมี API ที่เพิ่มเติมเข้ามา ซึ่งมันไม่ได้บอกตอน Compile หรือตัว Tool ที่ Check Comparability ไม่สามารถตรวจสอบได้ครอบคลุมครับจึงเป็นที่มาของปัญหา เมื่อ Export ข้อมูลใน Grid มาเป็นไฟล์ Excel คอมม่า ( , ) หาย…

[.NET] แก้ปัญหา Build แล้ว Error Your project file doesn’t list ‘win’ as a “RuntimeIdentifier”

blur close up code computer

Blog ตอนนี้ยังเป็น Blog ที่สรุปหลังปรับ Framework ขององค์กรครับ จาก Blog ก่อนหน้าที่ Error “The build is configured to run SonarQube analysis but the SonarQube analysis targets could not be located” คราวนี้มาเจอ Error ใหม่ ที่มันกวนตีนกว่าเดิมครับ เพราะ มันเป็นบ้าง ไม่เป็นบ้าง และถ้า Build ผ่านตัว Visual Studio ไม่เจอนะ…

[.NET] แก้ปัญหา Build แล้ว Error The build is configured to run SonarQube analysis

blur close up code computer

หลังจากปรับ Framework ของบริษัทให้เป็น .NET Standard เรียบร้อยแล้ว เมื่อทดสอบ Build ผ่านตัว Jenkins เกิด Error ดังนี้ The build is configured to run SonarQube analysis but the SonarQube analysis targets could not be located ภาพรวมของ SonarQube Analysis นะครับ ต้องเข้าใจก่อนนะครับ ว่าการวิเคราะห์ Code ของ SonarQube จริงๆ…

[C#] GetHashCode() ไม่เท่ากับ Equals() นะ !!!

black and white piano keys

ช่วงนี้เห็น Rule นึงที่ SonarQube มันแจ้งเตือนมาครับ “Equals(Object)” and “GetHashCode()” should be overridden in pairs ตัว Message มันหมายความว่าอย่างไรกันนะ หลังจากลองดูคำอธิบายอันนี้จะเป็นในมุมของ Security ครับ เค้าตั้งสมมติฐานว่า ถ้า เอาง่ายๆ ถ้า A และ B เรียก Equals() แล้วได้ true เมื่อไปเรียก GetHashCode() ควรจะได้ค่าเท่ากันครับ ที่ใช้คำว่าควรจะ เพราะจริงๆต้องบอกว่าสอดคล้องกันไปในทางเดียวกันมากกว่า เพราะ อันนี้เป็นคำอธิบายในมุมของ Security นะครับ มาดูในของ…

[C#] ถ้า GroupBy โดยใช้หลาย Property แล้วห้ามใช้ตัวแปรชนิด var หละ

C# Logo

จาก Blog ตอนก่อนหน้า [C#] ถ้า GroupBy แล้วห้ามใช้ตัวแปรชนิด var มารับหละ ? ตัวอย่างที่ผมได้ยกไปเป็นการ Group By โดยใช้เพียง 1 Property เท่านั้นครับ แต่ใช้ชีวิตจริง มีการใช้งานมากกว่า 1 Property ครับ ยกตัวอย่าง เช่น ก่อนปรับ : มีการใช้งาน 2 Property ครับ ได้แก่ ValueDate และ CashSecurityGroupCode ซึ่งมีชนิดข้อมูลเป็น DateTime และ String ตามลำดับครับ ถ้าเราจะเล่นมุกเดิมใน…

[C#] ถ้า GroupBy แล้วห้ามใช้ตัวแปรชนิด var มารับหละ ?

หลายองค์กรมีตัว Coding Standard เพื่อเป็นแนวทางในการเขียน Code ให้มีระเบียบ ไปในทีศทางเดียวกันครับ ใครๆก็สามารถมาอ่าน Code นั้นได้ครับ แล้วที่นี้ ถ้ามีการประกาศว่า ถ้ามี List<Object> แล้ว GroupBy ห้ามใช้ตัวแปรขนิด var มารับ จะทำอย่างไรหละ ? อ้าว Copy Pattern จาก Stack Overflow มา ทำอย่างไรดี !!! ทุกปัญหามีทางแก้ไขได้ครับ จากโจทย์ ถ้ามี List<Object> แล้ว GroupBy ห้ามใช้ตัวแปรขนิด var มารับ ลองมาดูตัวอย่าง…

[.NET] มา Debug ตัว NuGet Package กันครับ

C# Logo

หลังจากบทความก่อนหน้าที่ได้สอนว่าทำอย่างไรถึงได้ NuGet Package มาใช้งานกันเอง หรือ ใช้ภายในองค์กรแล้วครับ คราวนี้ผมมาสอนว่าถ้ามันเกิดปัญหาจริงๆ แล้วเราจะต้องเข้ามา Debug ตัว NuGet Package ที่ใช้ต้องทำอย่างไรบ้างครับ ทำไมต้อง Debug ตัว NuGet Package มารู้จักกันก่อนว่า NuGet Package แบบไหนถึงจะ Debug ได้ ถ้าเป็น Open Source บ้างเจ้าเค้าจะทำ Symbol ไว้ให้ รายละเอียดขึ้นกับแต่ละ Repo เลยครับ ถ้าไม่มีต้องมา Build และเพิ่ม Symbol สำหรับ Debug ทำให้…

[PowerShell] มาทำ Line Notify แจ้งข้อมูลคุณภาพของ Code กันดีกว่าครับ

powershell

จริงๆต้องบอกว่าทุกปัญหามันเริ่มต้นจากความขี้เกียจแหละครับ และช่วงหลังๆสำหรับหน่วยงานต่างๆ การตรวจสอบคุณภาพของ Source Code ตอนนี้มันถูกจัดไปเป็นเงื่อนไขหนึ่งใน TOR แล้วครับ มันเลยเป็นที่มาของ Blog นี้ครับ หลังจากที่ผมได้ตั้ง SonarQube เพื่อมาตรวจสอบคุณภาพ Code กันแล้ว ปัญหาที่พบ ไอ้ที่มันแหกกฏไปต้องทำอย่างไร ? ทำใจ อยู่ที่เรียนรู้ อยู่ที่ยอมรับมัน และจัดทีมมาแก้ไขมันครับ ตรงนี้ต้องมี Automate Test ประกบเสมอนะครับ แล้วของใหม่ที่กำลังเพิ่มขึ้นเรื่อยจะคุมอย่างไร แจ้งทีม ทำ Line Notify ขึ้นมาครับ เป็นที่มาของ Blog นี้เลยครับ ทำไมต้องมี Line Notify ในเรื่องของ…