จัดการข้อมูลบน Silverlight 2 ด้วย ADO.NET Data Services ตอนที่ 1: สร้าง ADO.NET Data Services


 

จากบทความที่ผมเขียนตีพิมพ์ลง นิตยสาร CODE IT [สอดอยู่ในเล่ม Windows ITPro ฉบับเดือน พฤศจิกายน 2551] ซึ่งผมได้ขออนุญาตในการนำบทความไปเผยแพร่จากทางสำนักพิมพ์เป็นที่เรียบร้อยแล้ว ติดตามกันได้เลยครับ:

Download source:
http://cid-7d608959d854cb28.skydrive.live.com/embedrowdetail.aspx/CODEITMAGAZIN/Silverlight2ADONETDataServices|_Part1.zip

SL2dds

ในบทความฉบับก่อนหน้านี้ได้กล่าวถึง การจัดการข้อมูลบน Silverlight 2 เบต้า 2 ด้วย WCF และ LINQ to SQL ท่านผู้อ่านคงได้เห็นภาพกันไปบ้างแล้วว่าเราสามารถพัฒนาแอพพลิเคชันด้วย Silverlight เพื่อจัดการกับข้อมูล ได้อย่างไม่ยาก ซึ่งหากท่านผู้อ่านเคยพัฒนาแอพพลิเคชันบนวินโดวส์ หรือบนเว็บ มาบ้างจะเห็นว่าเราแทบจะไม่ต้องศึกษาอะไรเพิ่มเติม เนื่องจากแนวการเขียนโค้ด การออกแบบหน้าจอไม่แตกต่างมากนัก เพียงเราไปศึกษา และใช้งานเครื่องมือเพิ่มเติม เราก็สามารถใช้เครื่องมือเหล่านั้นในการพัฒนาแอพพลิเคชันอย่างง่ายๆ ได้ และหากฝึกใช้ให้ชำนาญอย่างลึกซึ้งแล้ว หน้าตาแอพพลิเคชันที่เป็นผลออกมาก็ดูดี และน่าใช้งานมากยิ่งขึ้น

มาในบทความนี้ เป็นการกล่าวถึง การจัดการข้อมูลบน Silverlight 2 ด้วย ADO.NET Data Services ผู้เขียนขอนำเสนอวิธีการจัดการข้อมูลบน Silverlight อีกวิธีหนึ่งด้วยเทคโนโลยีใหม่บน .Net 3.5 นั่นคือ ADO.NET Entity Frame work (ซึ่งจะขอกล่าวถึงในไม่ช้านี้) โดยจะให้บริการข้อมูล (Data Services) ผ่านทาง ADO.NET Data Services จริงๆ แล้วผู้เขียนตั้งใจว่าจะใช้ Silverlight 2 เบต้า 2 ในการนำเสนอ แต่ในขณะที่ผู้เขียนกำลังร่างบทความต้นฉบับอยู่ ก็ได้ทราบข่าวดีว่าไมโครซอฟต์ได้ปล่อย Silverlight 2 ตัวจริงออกมาแล้วประมาณวันที่ 14/10/2551 ซึ่งใน Silverlight 2 ตัวจริงมันสามารถพัฒนาบน Visual Web Developer 2008 Express SP1 Edition เครื่องมือมีระดับที่ใช้ในการพัฒนาเว็บแอพพลิเคชันีอีกตัวหนึ่ง ซึ่งเราสามารถดาวน์โหลดไปใช้งานได้ฟรี ไม่เท่านั้นมันยังสามารถพัฒนาได้บนเครื่องมือ Eclipse ของฝั่ง JAVA ได้ด้วย จะมีอะไรใหม่เพิ่มเข้ามาบ้างสามารถติดตามได้ที่: http://weblogs.asp.net/scottgu พร้อมกันนั้นทางฝั่ง Expression Blend 2 ก็ปล่อย Service Pack 1 (SP1) ออกมาซึ่งแน่นอนว่ามันต้องสนับสนุน Silverlight 2 ตัวจริงได้ และบทความนี้ผู้เขียนจึงขอนำเสนอการพัฒนาแอพพลิเคชัน ผ่าน Silverlight 2 ตัวจริง บนเครื่องมือVS2008 SP1 และ เครื่องมือExpression Blend 2 SP1 โดยผู้เขียนแบ่งบทความออกเป็นสี่ตอนเนื่องจากบทความมีเนื้อหาค่อนข้างยาว และเพื่อไม่ให้ท่านผู้อ่านรู้สึกเบื่อไปเสียก่อน ขอแบ่งบทความออกเป็นตอนๆ ดังนี้:

  • ตอนที่ 1: สร้าง ADO.NET Data Services
  • ตอนที่ 2: เรียกใช้ข้อมูล ADO.NET Data Services ด้วย Silverlight 2
  • ตอนที่ 3: ใช้งาน VisualStateManager
  • ตอนที่ 4: เพิ่ม-แก้ไข-ลบ ข้อมูลด้วย ADO.NET Data Services

และก่อนที่เราจะเริ่มบทความในตอนที่ 1 เราไปสำรวจเครื่องมือสิ่งที่จำเป็นในบทความกันก่อนครับ

สิ่งที่จำเป็น (Prerequisites)

และเมื่อเราได้ทำการสำรวจความพร้อมของเครื่องไม้เครื่องที่จำเป็นในการพัฒนาแอพพลิเคชันแล้ว เราไปดูเป้าประสงค์กันว่าเมื่อเราผ่านขั้นตอนที่ หนึ่ง,สอง,สาม และสี่แล้ว หน้าตาแอพพลิเคชันเป็นอย่างไร? และเมื่อเราไปถึงขั้นตอนที่สี่แล้ว หน้าตาแอพพลิเคชันจะเป็นดังรูปที่ 1

 

จัดการข้อมูลบน Silverlight 2 ด้วย ADO.NET Data Services

รูปที่ 1: จัดการข้อมูลบน Silverlight 2 ด้วย ADO.NET Data Services

จากรูปที่ 1: กล่าวได้ว่า

  • หมายเลข: 1 เมื่อกดปุ่ม Home ข้อมูลของเพจ Home จะเคลื่อนที่มาแสดงแทน
  • หมายเลข: 2 เมื่อกดปุ่มโหลดข้อมูล เช่น ปุ่ม Category, Product, Supplier จะมี Popup ขึ้นมาพร้อมกับแสดงข้อความ Please Wait… และเมื่อโหลดข้อมูลเรียบร้อยแล้วมันจะหายไป
  • หมายเลข: 3 เมื่อกดปุ่ม Category ข้อมูลของหน้า Category จะเคลื่อนที่มาแสดงแทน
  • หมายเลข: 4 เมื่อกดปุ่ม Product ข้อมูลของหน้า Product จะเคลื่อนที่มาแสดงแทน
  • หมายเลข: 5 เมื่อกดปุ่ม Supplier ข้อมูลของหน้า Supplier จะเคลื่อนที่มาแสดงแทน

และเนื่องจากเรามีการใช้งาน VisualStateManager เมื่อเรากดเมาส์ลงบนแต่ละปุ่ม จะทำให้หน้าจอต่างๆ มีความเคลื่อนไหว (Animation) ขยับเข้า-ออก เพื่อเพิ่มความหรูหราให้กับหน้าจอแอพพลิเคชันให้น่าใช้งานยิ่งขึ้น ซึ่งเป็นการกำหนดการ (State) ของแต่ละเพจ ซึ่งเราจัดการผ่าน VisualStateManager ที่มาตั้งแต่ใน Silverlight 2 เบต้า และในหมายเลข 3-5 เป็นการจัดการกับข้อมูลด้วยการ เพิ่ม-แก้ไข และลบข้อมูลได้ผ่าน ADO.NET Data Services บน Silverlight 2 ในลำดับต่อไปเราไปดูขั้นตอนต่างๆ ในการพัฒนาแอพพลิเคชัน

ขั้นตอนการพัฒนาแอพพลิเคชันทั้งหมด แบ่งเป็นเก้าขั้นตอนดังนี้:

  • ขั้นตอนที่ หนึ่ง: สร้างโปรเจ็กต์ด้วยเทมเพลตโปรเจ็กต์ Silverlight
  • ขั้นตอนที่ สอง: สร้าง ADO.NET Entity Data Model
  • ขั้นตอนที่ สาม: สร้าง ADO.NET Data Service
  • ขั้นตอนที่ สี่: การเรียกใช้ข้อมูล ADO.NET Data Services
  • ขั้นตอนที่ ห้า: ใช้งาน Popup คอนโทรล
  • ขั้นตอนที่ หก: ผูกข้อมูลบนคอนโทรล ComboBox
  • ขั้นตอนที่ เจ็ด: ใช้งาน VisualStateManager
  • ขั้นตอนที่ แปด: ใช้งาน User Control
  • ขั้นตอนที่ เก้า: เพิ่ม-ลบ-แก้ไข ข้อมูลด้วย ADO.NET Data Services

 

ขั้นตอนที่ หนึ่ง: สร้างโปรเจ็กต์ด้วยเทมเพลตโปรเจ็กต์ Silverlight

หยิบเครื่องมือมีระดับของเราขึ้นมาจากเมนู Start >Microsoft Visual Studio 2008>Microsoft Visual Studio 2008 แล้วเลือกเมนู New Project เลือกประเภทโปรเจ็กต์ (Project types:) เป็นSilverlight และเทมเพลตโปรเจ็กต์เป็น Silverlight Application ตั้งชื่อโปรเจ็กต์เป็น Silverlight2ADONETDataServices จากนั้นคลิก OK VS2008 จะนำเราเข้าสู่หน้าต่าง Add Silverlight Application ให้เลือก Add a new web to the solution for hosting the control เพื่อให้ VS2008 สร้างโปรเจ็กต์ ASP.NET ให้ด้วยเพราะว่าเราจะจำลองให้มันเป็นเจ้าบ้าน(host) ผู้ให้บริการข้อมูลให้กับ Silverlight และในกล่อง Options ตรง Project Type:ให้เลือก Web Application Project จากนั้นคลิก OK แล้วเราก็จะได้ส่วนประกอบของโซลูชันเป็นสองโปรเจ็กต์ดังรูปที่ 2 ในขั้นตอนต่อไปเราจะไปสร้างADO.NET Entity Data Model

 

โปรเจ็กต์ Silverlight2ADONETDataServices

รูปที่ 2: โปรเจ็กต์ Silverlight2ADONETDataServices

 

ขั้นตอนที่ สอง: สร้าง ADO.NET Entity Data Model

กาลเวลายิ่งผ่านไป ความต้องการของมนุษย์ยิ่งเปลี่ยนแปลงและเพิ่มพูน และความต้องการด้านฐานข้อมูลก็เช่นกัน จากครั้งหนึ่งที่ฐานข้อมูลแบบ Relational ในรูปแบบแถว (Row) และคอลัมน์ (Column) เป็นที่นิยมอย่างแพร่หลาย การทำงานกับข้อมูลจะทำผ่านคำสั่ง SQL ไม่ว่าจะทำผ่านเครื่องมือของ SQL เองหรือฝังคำสั่งดังกล่าวเข้าไปในโค้ดของโปรแกรม ซึ่งเกิดปัญหาว่าคำสั่ง SQL ดังกล่าวหากมีความผิดพลาดแล้วตัวผู้พัฒนาเองมิได้รับรู้ในทันที จนกว่าจะส่งคำสั่งดังกล่าวเข้าไปทำงานถึงที่ SQL Server แล้วเซอร์ฟเวอร์ไม่สามารถรันคำสั่งดังกล่าวได้จึงส่งข้อผิดพลาดนั้นกลับมายังผู้พัฒนา ทำให้การโปรแกรมมิ่งไม่ได้รับสะดวกในการใส่โค้ดโปรแกรมมากนัก และยิ่งกว่านั้น หากเป็นระบบใหญ่ข้อมูลมากด้วยแล้ว ยากยิ่งในการดักจับข้อผิดพลาดต่างที่อาจเกิดขึ้น และเมื่อเข้าสู่ยุคปัจจุบันนี้ การโปรแกรมมิ่งเริ่มเข้าสู่โลกเชิงวัตถุ (OO) กันมากขึ้น จึงเกิดปัญหาตามมาอีกหลากหลายอย่าง เช่น ข้อมูลในรูปแบบแถวและ คอลัมน์ไม่สามารถเข้ากับโลกโปรแกรมมิ่งแบบเชิงวัตถุ (Data ? Object) จึงเกิดภาษาใหม่ขึ้นมาเพื่อจัดการข้อด้อยดังกล่าว นั่นคือ LINQ (Language Integrated Query) เพื่อใช้ในการจัดการข้อมูลแบบแถวและ คอลัมน์ให้สามารถทำงานได้จริงในโลกของเชิงวัตถุ จึงทำให้ข้อมูลเมื่อผ่าน LINQ แล้วจึงเท่ากับวัตถุ (Data = LINQ = Object) ดังรูปที่ 3 และตั้งแต่มี LINQ กำเนิดขึ้นทำให้สามารถจัดการกับฐานข้อมูลแบบ Relational ด้วยโปรแกรมมิ่งแบบเชิงวัตถุ(OOP) ได้อย่างง่ายดาย ผู้พัฒนาสามารถรับรู้ได้ทันที เมื่อเกิดข้อผิดพลาด ไม่ต้องรอให้รันโปรแกรม แล้วให้เซอร์ฟเวอร์เป็นผู้แจ้งข้อผิดพลาด

 

เมื่อ LINQ ทำให้ข้อมูล (Data) เท่ากับวัตถุ (Object)

รูปที่ 3: เมื่อ LINQ ทำให้ข้อมูล (Data) เท่ากับวัตถุ (Object)

ล่าสุดใน .Net 3.5 เมื่อเราทำการติดตั้ง SP1 เราจะได้ไอเทมชนิดใหม่เพิ่มเข้ามานั่นคือ ADO.NET Entity Data Model หรือมันคือ ADO.NET Entity Framework ซึ่งมันเป็นส่วนหนึ่งของเทคโนโลยีใน ADO.NET และแน่นอนว่าคงมิได้จำกัดเฉพาะฐานข้อมูล SQL ยังทำงานได้กับฐานข้อมูลค่ายอื่นๆ ได้ด้วยเช่น Oracle, MySQL, DB2, Firebird, Sybase, VistaDB, SQLite เป็นต้น ซึ่ง ADO.NET Entity Framework เป็นส่วนประกอบสามชั้น (Layers) อันได้แก่ ชั้น Logical , ชั้น Mapping และชั้น Conceptual โดยทั้งสามชั้นดังกล่าว รวมกันเรียกว่า EDM (Entity Data Model) ซึ่งภายในเราจะมองเห็น schema ที่อยู่ในฐานข้อมูลที่เป็นแบบ abstract ซึ่งเราสามารถจัดการกับมันได้ผ่านเครื่องมือมีระดับอย่าง VS 2008 แต่ในบทความนี้จะไม่ขอกล่าวลงลึกไปในตัว ADO.NET Entity Framework มากนัก ขอกล่าวเฉพาะส่วนที่เกี่ยวข้องเพื่อเป็นแนวทางในการเล่าความ เนื่องจากเรามีการใช้งาน ADO.NET Data Service และมันจะทำงานผ่าน ADO.NET Entity ด้วยภาษา LINQ ซึ่งกำลังจะกล่าวถึงในหัวข้อถัดไป ตอนนี้ให้เราไปเพิ่มเทมเพลต ADO.NET Entity Data Model ดังกล่าวเข้าไปในโปรเจ็กต์ Silverlight2ADONETDataServices.Web (เซอร์ฟเวอร์) เพื่อทำเป็นเจ้าบ้าน (Host) ผู้ให้บริการข้อมูลให้กับ โปรเจ็กต์ Silverlight2ADONETDataServices (ไคลเอ็นต์) โดยคลิกขวาบนโปรเจ็กต์ Silverlight2ADONETDataServices.Web > Add > New Item… จากนั้นในช่องเทมเพลต ให้เลือกเทมเพลต ADO.NET Entity Data Model และตั้งชื่อเป็น NorthwindModel.emdx แล้วกดปุ่ม Add ดังรูปที่4

 

เทมเพลต ADO.NET Entity Data Model

รูปที่ 4: เทมเพลต ADO.NET Entity Data Model

ในรูปที่ 3 เมื่อเรากดปุ่ม Add เราจะได้หน้าต่างในรูปที่ 5 (หมายเลข 1) ในหน้าต่าง Entity Data Model Wizard ให้เลือก Generates the model from a database.ในหมายเลข 1 จากนั้นคลิก Next จะเข้าสู่หมายเลข 2 ให้เราสร้างคอนเนคชันชี้ไปยังฐานข้อมูล Northwind เลือก Yes เพื่อบันทึกรหัสผู้ใช้จากนั้นติ๊กถูกตรง Save entity connection setting in Web.Config as: และตั้งชื่อเป็น NorthwindEntities จากนั้นกด Next จะเข้าสู่หมายเลข 3 หน้าต่าง Chose Your Database Objects ให้ติ๊กเลือก ออบเจ็กต์ตาราง (Table)เป็นการเลือกตารางทั้งหมด ในฐานข้อมูล จากนั้นกด Finish เราจะเข้าสู่หน้าจอ Entity Data Model Design ซึ่งข้อมูลตารางในฐานข้อมูลจะถูกแมปเป็นออบเจ็กต์ ดังหมายเลข 4รูปที่ 5: สร้าง ADO.NET Entity Data Model

จากรูปที 5 ในหมายเลข 4 ขอขยายความต่อเป็นรูปที่ 6 เรามาดูการแมปตารางไปเป็นออบเจ็กต์เพื่อว่าให้เราสามารถจัดการข้อมูลด้วยวิธีการเชิงวัตถุ ในหมายเลข 1 คือ ออบเจ็กต์ ของตาราง Category ในหมายเลข 2 คือคอลัมน์ และประเภทข้อมูล ของตาราง และในหมายเลข 3 คือ Value หรือ Properticy ซึ่งเป็นช่องทางที่เปิดให้เราสามารถดึงค่า หรือกำหนดค่าผ่านออบเจ็กต์เพื่อส่งไปยังตารางงในฐานข้อมูลจริง

ถึงตรงนี้เราก็สามารถจัดการกับข้อมูลในโลกของเชิงวัตถุกันได้แล้วผ่าน NorthwindEntities.edmx ที่เราได้ทำการสร้างไปเรียบร้อยแล้วเมื่อสักครู่ ในลำดับต่อไปนี้เราจะไปเปิดให้มันสามารถให้บริการข้อมูลผ่านเครื่องที่ชื่อ ADO.NET Data Service ในขั้นตอนที่สามไหนหัวข้อถัดไป

 

การแมปตารางไปเป็นออบเจ็กต์

รูปที่ 6: การแมปตารางไปเป็นออบเจ็กต์

 

ขั้นตอนที่ สาม: สร้าง ADO.NET Data Service

ในขั้นตอนที่สามเราจะให้บริการข้อมูลผ่าน ADO.NET Data Service ซึ่งชื่อเดิมของมันคือ Astoria ทำหน้าที่ในการให้บริการข้อมูลในรูปแบบของ ข้อมูล xml เราสามารถสอบถามข้อมูล (Query) โดยการผ่านข้อมูลที่ต้องการทาง url ซึ่งจะขอกล่าวในหัวข้อถัดไป ขั้นตอนนี้เราไปทำการเพิ่มเครื่องมือดังกล่าวเข้ามาในโปรเจ็กต์ของเราก่อน โดยการคลิกขวาบนโปรเจ็กต์ Silverlight2ADONETDataServices.Web > Add > New Item… จากนั้นในช่องเทมเพลต ให้เลือกเทมเพลต ADO.NET Data Service แล้วตั้งชื่อเป็น NorthwindWebDataService.svc

ดังรูปที่ 7 ในหมายเลข 1 จากนั้นคลิก Add เครื่องมือ VS2008 จะทำการเจนคลาส NorthwindWebDataService ดังหมายเลข 2 ให้เราทำการนำเอาดาต้าซอร์สคลาส NorthwindEntities ไปใส่ในหมายเลข 2 แล้วทำการเปิดการใช้งานดัง ลิสต์ติงที่ 1 โดยเราเปิดให้บริการแบบเข้าถึงทุก EntitySet และสามารถจัดการข้อมูลได้ทั้งหมด เนื่องเราต้องการ เพิ่ม-แก้ไข-ลบ ข้อมูลด้วยนั่นเอง

 

สร้าง ADO.NET Data Service

รูปที่ 7: สร้าง ADO.NET Data Service

 

ลิสต์ติงที่ 1: NorthwindWebDataService.svc.cs

public class NorthwindWebDataService : DataService<NorthwindEntities>

{

// This method is called only once to initialize service-wide policies.

public static void InitializeService(IDataServiceConfiguration config)

{

// TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.

// Examples:

// config.SetEntitySetAccessRule("MyEntityset", EntitySetRights.AllRead);

// config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All);

config.SetEntitySetAccessRule("*", EntitySetRights.All);

config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);

}

}

 

เมื่อเราทำการสร้าง ADO.NET Data Service และคอนฟิกในไฟล์ NorthwindWebDataService.svc.cs เป็นที่เรียบร้อยแล้ว Data Service ของเราก็พร้อมสำหรับการให้บริการแล้ว เราไปสอบถามข้อมูลบน NorthwindWebDataService.svc ของเรากันครับ บนโปรเจ็กต์ Silverlight2ADONETDataServices.Web คลิกขวาบน NorthwindWebDataService.svc > View in Browser ข้อมูลจะถูกแสดงออกมาดังลิสต์ติงที่ 2 ในรูปแบบข้อมูล xml

 

ลิสต์ติงที่ 2: http://localhost:1109/NorthwindWebDataService.svc/

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<service xml:base="http://localhost:1081/NorthwindWebDataService.svc/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns="http://www.w3.org/2007/app">
<workspace>
<atom:title>Default</atom:title>
<collection href="Categories">
<atom:title>Categories</atom:title>
</collection>
<collection href="CustomerDemographics">
<atom:title>CustomerDemographics</atom:title>
</collection>
<collection href="Customers">
<atom:title>Customers</atom:title>
</collection>
<collection href="dtproperties">
<atom:title>dtproperties</atom:title>
</collection>
<collection href="Employees">
<atom:title>Employees</atom:title>
</collection>
<collection href="Order_Details">
<atom:title>Order_Details</atom:title>
</collection>
<collection href="Orders">
<atom:title>Orders</atom:title>
</collection>
<collection href="Products">
<atom:title>Products</atom:title>
</collection>
<collection href="Region">
<atom:title>Region</atom:title>
</collection>
<collection href="Shippers">
<atom:title>Shippers</atom:title>
</collection>
<collection href="Suppliers">
<atom:title>Suppliers</atom:title>
</collection>
<collection href="sysdiagrams">
<atom:title>sysdiagrams</atom:title>
</collection>
<collection href="Territories">
<atom:title>Territories</atom:title>
</collection>
</workspace>
</service>

หากเราต้องการเฉพาะข้อมูล Category ให้เราป้อนข้อมูลที่ต้องการผ่านทาง url ดังนี้: http://localhost:1081/NorthwindWebDataService.svc/Categories เราจะได้ผลดังรูปที่ 8 ในหมายเลข 1 จะเห็นว่าเบราเซอร์แสดงข้อมูลออกมาเป็นแบบ Feed เนื่องจากเป็น xml นั่นเอง หากเราไม่ต้องการให้เบราเซอร์ตีความหมายข้อมูลออกมาเป็นแบบ Feed เราสามารถเข้าไปคอนฟิกได้บนเมนู Tools > Internet Options > Content ดังรูปที่ 8 ในหมายเลข 2 จากนั้นในช่อง Feeds ให้คลิก Settings จะเข้าสู่หน้าต่างในหมายเลข 3 ให้ติ๊กเอาเครื่องหมายถูกข้างหน้า Turn on feed reading view ออกแล้วคลิก OK

 

สอบถามข้อมูลโดยการผ่านข้อมูลที่ต้องการทาง url (1)

รูปที่ 8: สอบถามข้อมูลโดยการผ่านข้อมูลที่ต้องการทาง url (1)

จากนั้นทำสอบถามข้อมูลใหม่ (http://localhost:1081/NorthwindWebDataService.svc/Categories ) เราจะได้ผลดังรูปที่ 9 ในหมายเลข 1 และหากเราต้องการข้อมูล CategoryID = 1 เราสามารถป้อนข้อมูลดังนี้: http://localhost:1081/NorthwindWebDataService.svc/Categories(1) เราจะได้ผลดังรูปที่ 9 หมายเลข 2

 

สอบถามข้อมูลโดยการผ่านข้อมูลที่ต้องการทาง url (2)

รูปที่ 9: สอบถามข้อมูลโดยการผ่านข้อมูลที่ต้องการทาง url (2)

หากเราทำการเทียบเคียงระหว่างการสอบถามข้อมูลบน ADO.NET Data Service และคำสั่ง SQL จะได้ดังรูปที่ 10

จะเห็นว่าการคิวรี(Query) ข้อมูล ด้วยเครื่องมือ SQL Query ข้อมูลจะอยู่ในรูปแถว และคอลัมน์ ส่วนการคิวรีข้อมูลบน ADO.NET Data Service ข้อมูลอยู่ในรูปแบบของข้อมูล xml

 

เทียบเคียงระหว่างการสอบถามข้อมูลบน ADO.NET Data Service และคำสั่ง SQL

รูปที่ 10: เทียบเคียงระหว่างการสอบถามข้อมูลบน ADO.NET Data Service และคำสั่ง SQL

และเราจะไปเรียกใช้ข้อมูล ADO.NET Data Services ด้วย Silverlight 2 ในตอนที่สองครับ

 

แหล่งข้อมูลดาวน์โหลด:

 

แหล่งข้อมูลอ้างอิง:

Source :> จากนิตยสาร CODE IT [สอดอยู่ในเล่ม Windows ITPro ฉบับเดือน พฤศจิกายน 2551]

Merry Christmas & Happy New Year 2009

เกี่ยวกับ

Nuchit Atjanawat is a Microsoft MVP, GreatFriends Community Leader, WindowsITPro Columnist(Mr.Nano), Silverlight Business Application Instructor, Speaker in various Microsoft events, Author, passionate Blogger and a Software Engineer by profession. He has a very good skill over Silverlight, LightSwitch, C#, XAML & Blend. He shares his technical findings, tutorials in his technical blog. Follow his Blog and Facebook page to be updated on latest articles. - Technical Blog: https://janawat.wordpress.com - WindowsITPro Columnist(Mr.Nano): http://windowsitpro.net - The GreatFriends.Biz Community Discussion Board (nano): http://greatfriends.biz - witter: https://twitter.com/janawat - Facebook Page: https://www.facebook.com/nuchit - Instructor: http://bit.ly/GF250-01, http://bit.ly/GF150-02

เขียนใน Silverlight

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

In Archive
%d bloggers like this: