CodeBehind การ Search, Sort, Filter, Distinct value From DataSet
วันที่เขียน 10/9/2555 16:33:19     แก้ไขล่าสุดเมื่อ 21/11/2567 19:20:00
เปิดอ่าน: 9060 ครั้ง

C#.net codebehind Searching, Sorting, Filter, Distinct

ในบางครั้งการใช้ข้อมูลจาก Webservice ซึ่งคืนค่าเป็น DataSet ผู้พัฒนาโปรแกรม อาจจำเป็นต้องทำการ Seach Sort Filter ตลอดจน การ Distinct ข้อมูล เพื่อนำข้อมูลมาใช้งานต่อ ทั้งนี้ในอดีต เราอาจใช้วิธี วน Loop แต่วันนี้ เราจะเขียนโปรแกรมได้ง่ายขึ้น โดยจะยกตัวอย่างให้สามารถนำไปปรับใช้ได้ง่ายๆ นะคะ (ในที่นี้เป็น C#.net ภาษาอื่นก็นำไปปรับใช้นะคะ)

1. การ Search

//กรณีต้องการ Search ฟิวด์ codeid
DataRow[] returnedRows;
returnedRows = ds.Tables[0].Select("codeid='" + id + "'");
string name = returnRows[0][1].ToString();

 

2. การ Sort/Filter/Distinct Value (ที่มี uniqueID ด้วย)

DataSet ds = ดาต้าเซทที่จะใช้;
ds.Tables[0].Columns.Add("displayname", typeof(string), "[facultyname]+'==>'+[programcodename]"); //การเพิ่มคอลัมท์จากการ เชื่อม 2 ฟิลด์สำหรับการแสดงผล
DataView dataview = new DataView(ds.Tables[0]);
dataview.RowFilter = "displayname NOT LIKE '%ซ้ำ%'"; //ฟิวเตอร์ ไม่เอาข้อความที่มีคำว่า ซ้ำ จะใช้ LIKE หรือ เครื่องหมายทางคณิตศาสตร์ก็ได้
dataview.Sort = "displayname DESC"; //การเรียงลำดับข้อมูลจากมากไปหาน้อย กรณีจากน้อยไปหามาก ใช้ ASC
DataTable datatable = dataview.ToTable(); //นำข้อมูลที่ได้จากการประมวลผล dataview ใส่กลับคืนให้กับ datatable

//ต่อไปนี้เป็นการ เอาค่า ID ล่าสุด แยกตาก Group by ที่ต้องการ ในที่นี้จะ group ด้วย displayname ที่สร้างใหม่จากคำสั่งข้างบน แล้วนำไปสร้างเป็น table g ที่มีการ select ข้อมูล จาก Max ID ซึ่งก็คือ programid และ NAME ในที่นี้จะแทนค่าใน displayname
var results = from p in datatable.AsEnumerable()
group p by p["displayname"]
into g
select new
{
ID = g.Max(u => u["programid"]),
NAME = g.Key
};

ddl.DataSource = results; // นำผลการประมวลผลเป็น DataSource ของ DropDownList

ddl.DataTextField = "NAME";
ddl.DataValueField = "ID";
ddl.DataBind();
ddl.Items.Insert(0, new ListItem(""));

//หรือกรณีเป็น GridView ก็สามารถทำได้โดย
gv.DataSource = results.ToList();
gv.DataBind();

คำสำคัญ :
กลุ่มบทความ :
หมวดหมู่ :
แชร์ :
https://erp.mju.ac.th/acticleDetail.aspx?qid=216
ความคิดเห็นทั้งหมด (0)
ไม่มีข้อมูลตามเงื่อนไขที่ท่านกำหนด
รายการบทความการแลกเปลี่ยนเรียนรู้หมวดหมู่ : กลุ่มงานเทคโนโลยีสารสนเทศ
กลุ่มงานเทคโนโลยีสารสนเทศ » UX/UI Design ต่างกันอย่างไร
การออกแบบเว็บไซต์ การออกแบบผลิตภัณฑ์และบริการดิจิทัล มีความสำคัญมากขึ้นเป็นอย่างมาก โดยเฉพาะอย่างยิ่งการออกแบบประสบการณ์ผู้ใช้ (User Experience Design: UX Design) และการออกแบบส่วนต่อประสานผู้ใช้ (...
UI Design  UX Design  UX UI  UX/UI  การออกแบบเว็บ     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานเทคโนโลยีสารสนเทศ
ผู้เขียน ช่อทิพย์ สิทธิ  วันที่เขียน 6/9/2567 14:14:09  แก้ไขล่าสุดเมื่อ 21/11/2567 16:01:52   เปิดอ่าน 101  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
การพัฒนาโปรแกรม » การพัฒนาระบบเพื่อลดขั้นตอนการปฏิบัติงาน สำหรับการจัดเก็บและทำลายเอกสาร
การพัฒนาระบบเพื่อลดขั้นตอนการปฏิบัติงาน สำหรับการจัดเก็บและทำลายเอกสาร โดยมีวัตถุประสงค์ เพื่อเพิ่มประสิทธิภาพในการปฏิบัติงาน โดยการนำระบบจัดเก็บและทำลายเอกสารมาช่วยปรับปรุงประสิทธิผล ในกระบวนการทำ...
Re-Design Process?  ระบบจัดเก็บและทำลายเอกสาร     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานเทคโนโลยีสารสนเทศ
ผู้เขียน ณัฐกฤตา โกมลนาค  วันที่เขียน 5/9/2567 11:45:54  แก้ไขล่าสุดเมื่อ 21/11/2567 15:53:41   เปิดอ่าน 250  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
การพัฒนาระบบสารสนเทศ » ข้อมูลเปิด (Open Data) เบื้องต้น
ข้อมูลเปิด (Open Data) คือ ข้อมูลที่สามารถเข้าถึง ใช้งาน แก้ไข และแบ่งปันได้โดยไม่จำกัดข้อกำหนดหรือค่าใช้จ่าย ข้อมูลเปิดมักถูกเผยแพร่ในรูปแบบที่สามารถอ่านและวิเคราะห์ได้ง่าย เช่น ไฟล์ CSV, JSON, หร...
การเข้าถึง  การใช้งาน  การแบ่งปัน  การเปิดเผย  ข้อมูลเปิด     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานเทคโนโลยีสารสนเทศ
ผู้เขียน สมนึก สินธุปวน  วันที่เขียน 2/9/2567 9:45:13  แก้ไขล่าสุดเมื่อ 21/11/2567 16:01:22   เปิดอ่าน 98  ครั้ง | แสดงความคิดเห็น 0  ครั้ง