บทความ Excel, Access, SQL Server, ASP.NET, Windows, Database, IT
ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 14
ในตอนที่แล้วผู้เขียนพูดถึงเรื่องการเจาะจงอินเตอร์เฟส ซึ่งมีไว้เพื่อแก้ปัญหาในกรณีที่คลาสหนึ่งคลาสสืบคุณสมบัติจากอินเตอร์เฟสสองตัว และอินเตอร์เฟสสองตัวนั้นมีเมธอดชื่อเดียวกันและมีซิกเนเจอร์ตรงกัน จะมีผลให้อินเตอร์เฟสทั้งสองเรียกไปยังเมธอดเดียวกัน ในตอนนี้หัวข้อนี้จะพูดถึงการสร้างสมาชิกของอินเตอร์เฟสสองตัวแบบเจาะจงบ้าง

เก่งโค้ดงาน Business Intelligence ตอนที่ 7
ในภาษาเอ็มเราสามารถเขียนคิวรีที่อ้างถึงคิวรีอื่นเป็นซอร์สได้ ยกตัวอย่างเช่น สมมติว่าเรามีเวิร์กชีตในโปรเกรมเอ็กซ์เซลซึ่งมีตารางอยู่สองอัน ตารางชื่อ Sales และ ตารางชื่อ Product

การแสดงวันเวลาปัจจุบันแบบอัตโนมัติทุก 1 วินาทีบนฟอร์ม
ถ้าเราต้องการให้ วันเวลาปัจจุบันแสดงบน Form โดยที่ไม่ต้องเขียน code เราสามารถทำได้ใช้ Calulate Control โดยกำหนด Property ที่ Control Source ของ Textbox Control Source

Backward Compatibility (การเข้ากันได้ย้อนหลัง) ของ API
บทความตอนนี้พูดถึง Backward Compatibility ของ API ซึ่งคนโค้ดควรรู้และระมัดระวังเมื่อใช้งาน Framework ที่ออก version ใหม่กับ source code เก่าหรือ binary ที่ Compile ไว้กับ version เก่า หรือเมื่อเขียน library ใช้งานเอง เช่น ปัญหา Reference Types ที่ไม่เกี่ยวข้อง parameter แบบ Reference Types กับแบบที่ค่าเป็น null ไม่ได้ parameter ทางเลือก (Optional parameters) และ ปัญหาเรื่องความเข้ากันได้ย้อนหลังในระดับ source code และ binary เมื่อมีการทำ method overload กับ Type ที่เป็น Generic

การสืบค้นตามช่วงเวลา
นี่ก็เป็นอีกหนึ่งบทความใน “ซีรีย์คิวรี่ตามคำขอ” เพราะได้รับคำถามมา ก่อนอื่นผู้อ่านพบว่ามีผู้พัฒนาจำนวนไม่น้อยเก็บข้อมูล datetime เป็น string เพราะอาจไม่ชำนาญในการจัดการข้อมูล datetime เลยสตาฟมันไว้ในรูปแบบ string แทน ซึ่งกลายเป็นภาระในการสืบค้นเพราะเมื่อต้องการนำมาใช้ประโยชน์ก็ต้องหาทางสกัดข้อมูลจาก string มาเป็น datetime ก่อนอยู่ดี

การหาวันเริ่มต้นและวันสุดท้ายของเดือนปัจจุบัน
บทความนี้ผู้เขียนขอเรียกเป็น “ซีรีย์คิวรี่ตามคำขอ” เพราะผู้เขียนได้รับการสอบถามถึงการสืบค้นวันสุดท้ายของเดือนปัจจุบัน ทั้งที่ Microsoft SQL Server นั้นมีฟังก์ชั่น EOMONTH (End of Month) มาตั้งแต่เวอร์ชั่น 2012

พัฒนาการของ Query Store
ตั้งแต่ได้เขียนบทความ “รู้จัก Query Store บน SQL Server 2016” เอาไว้ก่อนหน้านี้ แล้วได้เว้นช่วงไปพอสมควร ปัจจุบัน Microsoft SQL Server ใกล้จะออกเวอร์ชั่น 2019 ในเร็ววันนี้ มาดูกันว่า Query Store เปลี่ยนไปจากเดิมมากแค่ไหนกัน

ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 13
ข้อดีอีกอย่างหนึ่งของภาษาซีชาร์ปคือการมีสิ่งที่เรียกว่า อินเตอร์เฟส (Interface) ซึ่งทำหน้าที่เหมือนเป็นสัญญาหรือข้อตกลงว่าคลาสใด ๆ จะมีพฤติกรรมอย่างไร อินเตอร์เฟสมีประโยชน์หลายอย่าง เช่นช่วยให้ออกแบบเพื่อลดความผูกแน่นระหว่างออพเจกต์ และเพิ่มคุณลักษณะการการเชื่อมกันอย่างหลวม ๆ ซึ่งเป็นคุณสมบัติอันพึงประสงค์เพราะจะช่วยให้ออพเจ็กต์มีความยืดหยุ่นมากขึ้น

เก่งโค้ดงาน Business Intelligence ตอนที่ 6
บทความตอนที่ผ่านมาเราดูพารามิเตอร์สามตัวแรกของฟังก์ชัน Table.Group() ไปแล้ว ในหัวข้อนี้มาดูหน้าที่ของพารามิเตอร์ตัวที่สี่กันบ้าง พารามิเตอร์ตัวที่สี่ของฟังก์ชัน Table.Group() ใช้ทำหน้าที่กำหนดวิธีเรียกข้อมูล ถ้าเราไม่กำหนดอะไรจะมีค่าโดยปริยายเป็น GroupKind.Global ซึ่งมีความหมายว่า เมื่อเราจัดกลุ่มคอลัมน์ ลำดับการเรียงข้อมูลจะไม่มีผล ทุกแถวที่สัมพันธ์กับค่าในคอลัมน์จะถูกรวมเข้าด้วยกัน

Merge Query ด้วย Power Query
ข้อมูลที่เราจะต้องทำการสรุปผล บางครั้งอาจจะมีข้อมูลมากกว่า 1 ตารางโดยมีความสัมพันธ์กัน คำสั่งหนึ่งที่จะใช้หาค่าใน Excel เราจะใช้ฟังก์ชั่น VLookup ซึ่งหากทำงานกับข้อมูลจำนวนมาก ก็จะรู้สึกว่า Excel มีความอืด หนืดมาก ซึ่งแนวทางในตัวอย่างนี้จะใช้ Merge Query ใน Power Query เพื่อทำการแก้ไขปัญหา โดยทำการ ETL ให้ข้อมูล Lookup เสร็จเรียบร้อย ทำให้ข้อมูลที่ได้ไม่มีสูตร การทำงานจะรวดเร็วและ ไฟล์จะเล็กลงอีกด้วย
