..
ในบทเรียนก่อนหน้านี้เราได้เห็นวิธีการผูกคอลเลกชันแบบคงที่ (ยังเป็นที่รู้จักในหน่วยความจำ) เพื่อควบคุมด้านเซิร์ฟเวอร์ต่างๆ แม้ว่าการดำเนินการชนิดนี้จะมีประโยชน์ในบริบทบางอย่าง แต่มักจะต้องผูกตัวควบคุมในคอลเลกชันต่างๆของรายการจากแหล่งอื่น ๆ มามักจะมาจากฐานข้อมูล
นอกจากนี้ยังรวมถึงห้องสมุดชั้นสำหรับการพัฒนาโปรแกรม Desktop (Windows แบบฟอร์ม) และการจัดการการร้องขอ HTTP (ASP.NET) ที่. NET Framework ที่ยังมีห้องสมุดที่รองรับการเชื่อมต่อที่หลากหลายของฐานข้อมูลและเป็น ที่เรียกว่า ADO.NET (ข้อมูลวัตถุที่ใช้งาน. NET) เทคโนโลยีนี้จะขึ้นอยู่กับสามหน้าที่หลัก : การเชื่อมต่อกับฐานข้อมูลการสอบถามฐานข้อมูลและการจัดการผลการ
เมื่อคุณต้องการติดต่อกับฐานข้อมูลที่คุณจะต้องเชื่อมต่อกับมัน การเชื่อมต่อนั้นจะต้องมีบัตรประจำตัวของตำแหน่งที่ตั้งของฐานข้อมูล แต่ยังสามารถขอการจัดการความปลอดภัยและการพักผ่อนที่ซับซ้อนอื่น ๆ องค์ประกอบทั้งหมดเหล่านี้จะมีการจัดการเป็นส่วนหนึ่งของกระบวนการของการเชื่อมต่อไปยังฐานข้อมูล ข้อมูลการเชื่อมต่อจะถูกส่งไปมักจะเป็นสตริง, ซึ่งมีเนื้อหาที่ใช้สำหรับการตั้งค่าพารามิเตอร์ต่างๆ
ในขณะที่ในอดีตที่ผ่านมาคุณได้เขียนโค้ดด้วยตนเองในการเข้าถึงฐานข้อมูลผ่าน ADO.NET ได้โดยการระบุประเภทของฐานข้อมูลที่คุณต้องการเชื่อมต่อโดยอัตโนมัติและตั้งค่าคุณสมบัติที่เหมาะสำหรับประเภทของการเชื่อมต่อที่
มีหลายประเภทของฐานข้อมูลที่สนับสนุนคือ :
<configuration> <configSections> ชื่อมาตรา <="System.Data.Odbc" ประเภท =" System.Data.Common.DbProviderConfigurationHandler, ..."/> ชื่อมาตรา <= พิมพ์"System.Data.OleDb"=" System.Data.Common.DbProviderConfigurationHandler, ..."/> ชื่อมาตรา <= พิมพ์"System.Data.OracleClient"=" System.Data.Common.DbProviderConfigurationHandler, ..."/> ชื่อมาตรา <= พิมพ์"System.Data.SqlClient"=" System.Data.Common.DbProviderConfigurationHandler, ... "/> <configSections /> <system.data> <DbProviderFactories> <เพิ่มชื่อ ="Microsoft SQL Server ผู้ให้บริการข้อมูลขนาดกะทัดรัด"คงที่ =" System.Data.SqlServerCe.3.5" ประเภท ="System.Data.SqlServerCe.SqlCeProviderFactory ... "/> </ DbProviderFactories> </ System.Data> < การกำหนดค่า />>
เพื่อสร้างการเชื่อมต่อฐานข้อมูลจึงต้องใช้องค์ประกอบทางด้านขวา ด้วยความพร้อมของการเชื่อมต่อแล้วคุณสามารถใช้การเข้าถึงฐานข้อมูล ตัวอย่างเช่นถ้าเครื่องคอมพิวเตอร์ของเราโฮสต์สำหรับฐานข้อมูลของ SQL Server ที่เรียกว่า DB_TEST ต้องเข้าสู่การประยุกต์ใช้ในที่สุดสตริงการเชื่อมต่อดังต่อไปนี้ของเรา
<configuration> <connectionStrings> <ชื่อเพิ่ม ="Test" ConnectionString = เซิร์ฟเวอร์"= (ท้องถิ่น); การรักษาความปลอดภัยแบบบูรณาการ = SSPI; ฐานข้อมูล DB_TEST ="/> </ ConnectionStrings> <การกำหนดค่า />ณ จุดนี้คุณสามารถเปิดการเชื่อมต่อและเพื่อให้มีฐานข้อมูลสำหรับการดำเนินการของการดำเนินงานที่เราต้องการ
ฐานข้อมูลส่วนใหญ่สนับสนุนภาษา SQL (Structured Query Language) เพื่อให้คำสั่งเปลี่ยนแปลงการแทรกและการลบใหม่ของข้อมูล คำสั่งเหล่านี้มักจะมีรูปแบบคล้ายกับต่อไปนี้
SELECT * FROM ลูกค้าที่นามสกุล ='Smith'ที่ลูกค้าเป็นตารางในฐานข้อมูล คำสั่งนี้จะใช้เวลาในรายการของลูกค้าที่มีชื่อสมิท ธ ล่าสุด เพื่อให้ได้ข้อมูลเหล่านี้ภายในโปรแกรมของเราของเราเขียนรหัสต่อไปนี้
ชั้น TestDBApp
{
static void Main ()
{
DbProviderFactory DbProviderFactory DbProviderFactories.GetFactory = ("System.Data.SqlClient");
ใช้ (DbConnection dbProviderFactory.CreateConnection conn = ())
{
String s = ConfigurationManager.ConnectionStrings ["ทดสอบ"] ConnectionString.;
conn.ConnectionString = s;
conn.Open ();
DbCommand cmd = conn.CreateCommand ();
cmd.CommandText ="SELECT * FROM ลูกค้าที่นามสกุล ='Smith'";
DbDataReader อ่าน = cmd.ExecuteReader ();
/ / ใช้ผู้อ่านในการเข้าถึงข้อมูล
}
}
}
คำสั่ง (cmd) โดยใช้วิธีการ ExecuteReader สาเหตุการส่งคำสั่งกำลังโหลดฐานข้อมูลของเรา
ผลลัพธ์ที่ได้ในกรณีนี้ได้รับผ่าน instance ของ class ที่เป็น IDataReader แต่คุณยังสามารถจัดการได้ผ่านชั้นอื่นที่เรียกว่าชุดข้อมูล
IDataReader จะระบุการดำเนินการซ้ำกับผลของแบบสอบถาม โดยเฉพาะอย่างยิ่ง exposes วิธีการอ่านที่ iterates ผ่านแถวที่หนึ่งในเวลาดังนั้นข้อเสีย sequenziale.Lo คือว่าเมื่อการสแกนเป็นไปไม่ได้เพื่อกลับไปยังบรรทัดก่อนหน้าและแถวที่ส่งกลับยังมีการอ่านอย่างเดียวดังนั้นคุณจึงไม่สามารถเปลี่ยน เนื้อหา
ทางเลือกคือการ IDataReader ไปยังชุดข้อมูลซึ่งจะช่วยให้การบริหารจัดการชุดของข้อมูลการเชื่อมต่อที่ ADO.NET ถูกออกแบบมาเพื่อรองรับการใช้งานที่ปรับขนาดได้มากและหนึ่งในปัญหาหลักของ scalability เป็นข้อ จำกัด ในการจำนวนการเชื่อมต่อไปยังฐานข้อมูล ฐานข้อมูลในความเป็นจริงมักจะมีการ จำกัด จำนวนของการเชื่อมต่อใช้งานพร้อมกันในเวลาที่กำหนดและหากทุกคนในการใช้งานจะได้รับอนุญาตการดำเนินงานจะชะลอตัวลง หากจำนวนผู้ใช้ของระบบคือประมาณเท่ากับจำนวนของการเชื่อมต่อใช้ได้ในเวลาเดียวกันอาจทำให้เกิดปัญหาที่ไม่เกี่ยวข้อง แต่ถ้าจำนวนผู้ใช้ที่มีมากขึ้นประสิทธิภาพของระบบอาจประสบอย่างมาก
เพื่อแก้ไขปัญหาเหล่านี้ให้ชั้น ADO.NET DataSet, การออกแบบเพื่อให้การจัดเรียงของสำเนาของฐานข้อมูล (หรือส่วนใดส่วนหนึ่ง) ที่ใช้โดยโปรแกรมประยุกต์ ข้อได้เปรียบที่มีจำนวนมากเพียงแค่คิดว่าภายในอินสแตนซ์ของ dataset คุณสามารถป้อนข้อมูลใหม่, ปรับปรุงหรือลบวัตถุที่มีอยู่แล้วยืนยันทั้งหมดของการดำเนินงานเหล่านี้ที่จะดำเนินการในโหมดการเชื่อมต่อโดยการเชื่อมต่อไปยังฐานข้อมูลในช่วงเวลาสั้นของเวลา
ชุดข้อมูลคลาสที่มีอาร์เรย์ของ DataTable วัตถุซึ่งมีประชากรผ่านทางนี้ DataAdapter องค์ประกอบเหล่านี้ถูกเรียกเมื่อโหลดข้อมูลจากฐานข้อมูลโดยตรงลงใน DataTable และจากนั้นคุณสามารถทำงานกับข้อมูลในท้องถิ่นเหล่านี้ติดต่อกับฐานข้อมูลเฉพาะเมื่อคุณยืนยันการเปลี่ยนแปลงที่ทำกับพวกเขา
ดังนั้นการใช้ชุดข้อมูลเราสามารถเข้าถึงองค์ประกอบในมันทุกอย่างสมบูรณ์แบบสุ่มซึ่งแตกต่างจากสิ่งที่เราเห็นสำหรับ DbDataReader ส่วนประกอบ
| |
ASP (Advanced)
หลักสูตรเต็มสำหรับการสร้างเว็บไซต์แบบไดนามิก จาก 39 € |
| |
ASP.NET (หลักสูตร)
หลักสูตรเต็มสำหรับสร้างเว็บแอพพลิเคชันจาก 49 € |
| |
SQL และฐานข้อมูล (หลักสูตร)
การสร้างและจัดการฐานข้อมูลเชิงสัมพันธ์ จาก 39 € |