Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การรวมการเชื่อมต่อใน C # คืออะไรและจะบรรลุผลได้อย่างไร


ใช้เพื่อนำเข้าเนมสเปซ (หรือสร้างนามแฝงสำหรับเนมสเปซหรือประเภท)

สิ่งเหล่านี้จะไปที่ด้านบนสุดของไฟล์ ก่อนการประกาศใดๆ

using System;
using System.IO;
using WinForms = global::System.Windows.Forms;
using WinButton = WinForms::Button;


คำสั่ง use ช่วยให้แน่ใจว่า Dispose() ถูกเรียกแม้ว่าข้อยกเว้นจะเกิดขึ้นเมื่อคุณสร้างอ็อบเจ็กต์และเมธอดการเรียก คุณสมบัติ และอื่นๆ Dispose() เป็นวิธีการที่มีอยู่ในอินเทอร์เฟซ IDisposable ที่ช่วยในการใช้งาน Garbage Collection แบบกำหนดเอง กล่าวอีกนัยหนึ่ง หากเรากำลังดำเนินการเกี่ยวกับฐานข้อมูล (แทรก อัปเดต ลบ) แต่มีข้อยกเว้นเกิดขึ้น คำสั่งที่ใช้จะปิดการเชื่อมต่อโดยอัตโนมัติ ไม่จำเป็นต้องเรียกใช้เมธอด Close() ของการเชื่อมต่ออย่างชัดเจน

ปัจจัยสำคัญอีกประการหนึ่งคือช่วยในการรวมการเชื่อมต่อ การรวมการเชื่อมต่อใน .NET ช่วยขจัดการปิดการเชื่อมต่อฐานข้อมูลหลายครั้ง มันส่งอ็อบเจ็กต์การเชื่อมต่อไปยังพูลเพื่อใช้ในอนาคต (การเรียกฐานข้อมูลครั้งต่อไป) ครั้งถัดไปที่มีการเรียกการเชื่อมต่อฐานข้อมูลจากแอปพลิเคชันของคุณ กลุ่มการเชื่อมต่อจะดึงวัตถุที่มีอยู่ในพูล จึงช่วยปรับปรุงประสิทธิภาพของแอพพลิเคชั่น ดังนั้นเมื่อเราใช้คำสั่ง using ตัวควบคุมจะส่งอ็อบเจ็กต์ไปยังพูลการเชื่อมต่อโดยอัตโนมัติ และไม่จำเป็นต้องเรียกใช้เมธอด Close() และ Dispose() อย่างชัดเจน

using (Stream input = File.OpenRead(filename)) {
   ...
}

ตัวอย่าง

string connString = "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;";
using (SqlConnection conn = new SqlConnection(connString)) {
   SqlCommand cmd = conn.CreateCommand();
   cmd.CommandText = "SELECT CustomerId, CompanyName FROM Customers";
   conn.Open();

   using (SqlDataReader dr = cmd.ExecuteReader()) {
      while (dr.Read())
      Console.WriteLine("{0}\t{1}", dr.GetString(0), dr.GetString(1));
   }
}

ในโค้ดด้านบนนี้ เราไม่ได้ปิดการเชื่อมต่อใดๆ มันจะปิดโดยอัตโนมัติ การใช้คำสั่งจะเรียก conn.Close() โดยอัตโนมัติเนื่องจากคำสั่งที่ใช้

(โดยใช้ (SqlConnection conn =new SqlConnection(connString)) และเหมือนกันสำหรับวัตถุ SqlDataReader และหากเกิดข้อยกเว้นขึ้น การเชื่อมต่อจะปิดโดยอัตโนมัติ