การเพิ่ม การอัปเดต การลบ: การเชื่อมต่อฐานข้อมูล ASP.NET

⚡ สรุปอย่างชาญฉลาด

ASP.NET เชื่อมต่อกับฐานข้อมูลต่างๆ เช่น SQL Server และ Oracle โดยใช้ ADO.NET ผ่านคลาส SqlConnection, SqlCommand, SqlDataReader และ SqlDataAdapter เพื่อเปิดการเชื่อมต่อและดำเนินการเลือก แทรก อัปเดต และลบข้อมูลกับระเบียนที่จัดเก็บไว้

  • 🔌 การเชื่อมต่อ: SqlConnection จะเปิดการเชื่อมต่อกับฐานข้อมูลโดยใช้สตริงการเชื่อมต่อซึ่งประกอบด้วยแหล่งข้อมูล แคตตาล็อก และข้อมูลรับรอง
  • ???? อ่านบันทึก: คำสั่ง SqlCommand ที่ใช้ ExecuteReader และ SqlDataReader จะวนลูปผ่านแถวที่ได้จากคำสั่ง SELECT
  • เพิ่มและอัปเดต: SqlDataAdapter ที่มี ExecuteNonQuery จะรันคำสั่ง INSERT และ UPDATE เพื่อเปลี่ยนแปลงข้อมูลที่จัดเก็บไว้
  • 🗑️ ลบ: คำสั่ง DELETE ที่ดำเนินการผ่าน ExecuteNonQuery จะลบแถวที่ระบุออกจากตาราง
  • 🔗 ผูกปุ่มควบคุม: แหล่งข้อมูลจะผูกรายการ (List) เข้าด้วยกันBoxสามารถเพิ่มตัวควบคุมต่างๆ เช่น DropDownList และตัวควบคุมที่คล้ายกันลงในช่องข้อมูลของตารางได้โดยตรง
  • 🔐 อยู่อย่างปลอดภัย: การกำหนดพารามิเตอร์ในแบบสอบถามและการปิดการเชื่อมต่อทุกครั้งช่วยให้โค้ดฐานข้อมูลปลอดภัยและเชื่อถือได้

การเพิ่ม การอัปเดต และการลบข้อมูลในฐานข้อมูลด้วย ASP.NET Operations

การเข้าถึงข้อมูลจากฐานข้อมูลเป็นสิ่งสำคัญในภาษาโปรแกรมทุกภาษา จำเป็นอย่างยิ่งที่ภาษาโปรแกรมทุกภาษาจะต้องมีความสามารถในการทำงานกับฐานข้อมูล

ASP.NET มีความสามารถในการทำงานกับฐานข้อมูลหลายประเภท โดยสามารถทำงานร่วมกับฐานข้อมูลที่ใช้กันทั่วไปได้ เช่น Oracle และ Microsoft SQL เซิร์ฟเวอร์

อีกทั้งยังมีความสามารถในการทำงานกับฐานข้อมูลรูปแบบใหม่ๆ เช่น MongoDB และ MySQL.

หลักการพื้นฐานของการเชื่อมต่อฐานข้อมูล

ASP.NET สามารถทำงานร่วมกับฐานข้อมูลได้หลากหลายประเภท โดยประเภทที่ใช้กันมากที่สุดคือ Oracle และ Microsoft SQL Server- แต่ในทุกฐานข้อมูล ตรรกะเบื้องหลังการทำงานกับฐานข้อมูลทั้งหมดส่วนใหญ่จะเหมือนกัน

ในตัวอย่างของเรา เราจะดูการทำงานกับ Microsoft SQL Server เป็นฐานข้อมูลของเรา เพื่อวัตถุประสงค์ในการเรียนรู้ สามารถดาวน์โหลดและใช้งานได้ Microsoft SQL Server รุ่นเอ็กซ์เพรส นี่คือซอฟต์แวร์ฐานข้อมูลฟรีที่จัดทำโดย Microsoft.

ในการทำงานกับฐานข้อมูล แนวคิดต่อไปนี้เป็นสิ่งที่พบได้ทั่วไปในฐานข้อมูลทุกประเภท:

  1. การเชื่อมต่อ – ในการทำงานกับข้อมูลในฐานข้อมูล ขั้นตอนแรกที่ชัดเจนคือการเชื่อมต่อ การเชื่อมต่อกับฐานข้อมูลโดยปกติจะประกอบด้วยพารามิเตอร์ที่กล่าวถึงด้านล่าง
    1. ชื่อฐานข้อมูลหรือแหล่งข้อมูล – พารามิเตอร์ที่สำคัญตัวแรกคือชื่อฐานข้อมูล การเชื่อมต่อแต่ละครั้งสามารถทำงานได้กับฐานข้อมูลครั้งละหนึ่งฐานข้อมูลเท่านั้น
    2. หนังสือรับรอง – ส่วนสำคัญถัดมาคือชื่อผู้ใช้และรหัสผ่าน ซึ่งใช้ในการสร้างการเชื่อมต่อกับฐานข้อมูล
    3. พารามิเตอร์เสริม – คุณสามารถระบุพารามิเตอร์เพิ่มเติมเกี่ยวกับวิธีการที่ .NET ควรจัดการการเชื่อมต่อกับฐานข้อมูลได้ ตัวอย่างเช่น คุณสามารถระบุพารามิเตอร์สำหรับระยะเวลาที่การเชื่อมต่อควรใช้งานได้
  2. การเลือกข้อมูลจากฐานข้อมูล – เมื่อสร้างการเชื่อมต่อแล้ว ข้อมูลจะถูกดึงมาจากฐานข้อมูล ASP.NET มีความสามารถในการเรียกใช้คำสั่ง SQL select กับฐานข้อมูล คำสั่ง SQL สามารถใช้เพื่อดึงข้อมูลจากตารางเฉพาะในฐานข้อมูลได้
  3. การแทรกข้อมูลลงในฐานข้อมูล – ASP.NET ใช้สำหรับแทรกข้อมูลลงในฐานข้อมูล โดยจะระบุค่าสำหรับแต่ละแถวที่ต้องการแทรกในฐานข้อมูลใน ASP.NET
  4. การอัพเดตข้อมูลลงในฐานข้อมูล – ASP.NET ยังสามารถใช้ในการอัปเดตข้อมูลที่มีอยู่แล้วในฐานข้อมูลได้อีกด้วย โดยสามารถระบุค่าใหม่ใน ASP.NET สำหรับแต่ละแถวที่ต้องการอัปเดตลงในฐานข้อมูลได้
  5. การลบข้อมูลจากฐานข้อมูล – ASP.NET ยังสามารถใช้ในการลบข้อมูลจากฐานข้อมูลได้ด้วย โดยจะเขียนโค้ดเพื่อลบแถวข้อมูลเฉพาะแถวใดแถวหนึ่งออกจากฐานข้อมูล

เมื่อเราได้เรียนรู้ทฤษฎีของแต่ละการดำเนินการไปแล้ว ต่อไปเรามาดูวิธีการดำเนินการกับฐานข้อมูลใน ASP.NET กัน

การเชื่อมต่อฐานข้อมูล ASP.NET

ต่อไปนี้เราจะมาดูโค้ดที่จำเป็นต้องคงไว้เพื่อสร้างการเชื่อมต่อกับฐานข้อมูล ในตัวอย่างนี้ เราจะเชื่อมต่อกับฐานข้อมูลที่มีชื่อว่า Demodb ข้อมูลประจำตัวที่ใช้ในการเชื่อมต่อกับฐานข้อมูลมีดังต่อไปนี้:

  • ชื่อผู้ใช้ – ส
  • รหัสผ่าน – demo123

มาเริ่มใช้งานเว็บแอปพลิเคชันที่เราสร้างไว้ในส่วนก่อนหน้านี้กันเถอะ

  • เริ่มเพิ่มการดำเนินการฐานข้อมูลลงไป
  • ตัวอย่างของเรานี้แสดงให้เห็นถึงการสร้างการเชื่อมต่ออย่างง่าย การเชื่อมต่อนี้จะทำกับฐานข้อมูล Demodb เมื่อหน้าเว็บถูกเปิดใช้งานครั้งแรก
  • เมื่อสร้างการเชื่อมต่อแล้ว ข้อความจะถูกส่งไปยังผู้ใช้ ข้อความจะระบุว่าได้ทำการเชื่อมต่อแล้ว

เรามาทำตามขั้นตอนด้านล่างนี้เพื่อบรรลุเป้าหมายนี้กัน

ขั้นตอน 1) ก่อนอื่น โปรดตรวจสอบให้แน่ใจว่าคุณได้เปิดเว็บแอปพลิเคชัน (DemoApplication) ใน Visual Studio แล้ว Double-คลิกไฟล์ demo.aspx.cs เพื่อป้อนโค้ดสำหรับการเชื่อมต่อฐานข้อมูล

การเชื่อมต่อฐานข้อมูล ASP.NET

ขั้นตอน 2) เพิ่มโค้ดด้านล่างซึ่งจะใช้เพื่อสร้างการเชื่อมต่อกับฐานข้อมูล

การเชื่อมต่อฐานข้อมูล ASP.NET

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string connectionString;
            SqlConnection cnn;

            connectionString = @"Data Source=WIN-50GP30FGO75;Initial Catalog=Demodb;User ID=sa;Password=demo123";

            cnn = new SqlConnection(connectionString);

            cnn.Open();

            Response.Write("Connection Made");
            cnn.Close();
        }
    }
}

Code คำอธิบาย:-

  1. ขั้นตอนแรกคือการสร้างตัวแปร ตัวแปรเหล่านี้จะถูกใช้ในการสร้างสตริงการเชื่อมต่อและการเชื่อมต่อกับฐานข้อมูล SQL Server
  2. ขั้นตอนต่อไปคือการสร้างสตริงการเชื่อมต่อ สตริงการเชื่อมต่อประกอบด้วยส่วนต่างๆ ดังต่อไปนี้:
    • แหล่งข้อมูล – นี่คือชื่อของเซิร์ฟเวอร์ที่เก็บฐานข้อมูล ในกรณีของเรา ฐานข้อมูลอยู่บนเครื่องชื่อ WIN-50GP30FGO75
    • แคตตาล็อกเริ่มต้นใช้สำหรับระบุชื่อของฐานข้อมูล
    • รหัสผู้ใช้และรหัสผ่านเป็นข้อมูลประจำตัวที่จำเป็นสำหรับการเชื่อมต่อกับฐานข้อมูล
  3. ขั้นตอนต่อไป เราจะกำหนดสตริงการเชื่อมต่อให้กับตัวแปร cnn
    • ตัวแปร cnn เป็นประเภท SqlConnection ใช้เพื่อสร้างการเชื่อมต่อกับฐานข้อมูล
    • SqlConnection เป็นคลาสใน ASP.NET ที่ใช้สำหรับสร้างการเชื่อมต่อกับฐานข้อมูล
    • ในการใช้งานคลาสนี้ คุณต้องสร้างอ็อบเจ็กต์ของคลาสนี้ก่อน ดังนั้น ในที่นี้เราจึงสร้างตัวแปรชื่อ cnn ซึ่งมีชนิดเป็น SqlConnection
  4. ถัดไป เราใช้เมธอด Open ของตัวแปร cnn เพื่อเปิดการเชื่อมต่อกับฐานข้อมูล เราแสดงข้อความให้ผู้ใช้ทราบว่าการเชื่อมต่อสำเร็จแล้ว โดยทำผ่านเมธอด Response.Write จากนั้นเราปิดการเชื่อมต่อกับฐานข้อมูล

เมื่อตั้งค่าโค้ดข้างต้นและเรียกใช้โปรเจ็กต์โดยใช้คำสั่งดังกล่าว Visual Studioคุณจะได้รับผลลัพธ์ดังต่อไปนี้ เมื่อแบบฟอร์มปรากฏขึ้น ให้คลิกปุ่มเชื่อมต่อ

ผลลัพธ์:-

การเชื่อมต่อฐานข้อมูล ASP.NET

ข้อความเอาท์พุตที่แสดงในเบราว์เซอร์จะแสดงให้เห็นว่าได้เชื่อมต่อกับฐานข้อมูลแล้ว

ASP.NET อ่านฐานข้อมูลโดยใช้ SqlDataReader

เพื่อแสดงข้อมูลที่เข้าถึงโดยใช้ ASP.NET เราจะสมมติว่ามีข้อมูลต่อไปนี้อยู่ในฐานข้อมูลของเรา

  1. ตารางชื่อ demotb นี้จะใช้สำหรับจัดเก็บ ID และชื่อของบทเรียนต่างๆ
  2. ตารางจะมีสองคอลัมน์ คอลัมน์หนึ่งชื่อ TutorialID และอีกคอลัมน์หนึ่งชื่อ TutorialName
  3. ในขณะนี้ตารางจะมีสองแถวดังแสดงด้านล่าง
ID การสอน ชื่อบทช่วยสอน
1 C#
2 ASP.Net

เรามาแก้ไขโค้ดเพื่อให้สามารถเรียกดูข้อมูลและแสดงข้อมูลนั้นบนหน้าเว็บได้โดยตรง โปรดทราบว่าโค้ดที่ป้อนเข้าไปนั้นเป็นส่วนต่อเนื่องจากโค้ดที่เขียนไว้สำหรับโมดูลการเชื่อมต่อข้อมูล

ขั้นตอน 1) เรามาแบ่งโค้ดออกเป็นสองส่วนกัน:

  • ส่วนแรกคือการสร้างคำสั่ง SELECT ซึ่งจะใช้ในการอ่านข้อมูลจากฐานข้อมูล
  • จากนั้นเราจะเรียกใช้คำสั่ง SELECT กับฐานข้อมูล ซึ่งจะดึงข้อมูลทุกแถวจากตารางมาให้

ASP.NET อ่านฐานข้อมูลโดยใช้ SqlDataReader

Code คำอธิบาย:-

  1. ขั้นตอนแรกคือการสร้างตัวแปรต่อไปนี้:
    • SqlCommand – SqlCommand เป็นคลาสที่นิยามไว้ในภาษา C# คลาสนี้ใช้สำหรับดำเนินการอ่านและเขียนข้อมูลลงในฐานข้อมูล
    • วัตถุ DataReader ใช้เพื่อรับข้อมูลทั้งหมดที่ระบุโดยแบบสอบถาม SQL จากนั้นเราสามารถอ่านแถวตารางทั้งหมดได้ทีละแถวโดยใช้เครื่องอ่านข้อมูล
    • จากนั้นเรากำหนดตัวแปรสตริงสองตัว ตัวแรกคือ sql เพื่อเก็บสตริงคำสั่ง SQL ของเรา ตัวถัดไปคือ Output ซึ่งจะเก็บค่าทั้งหมดในตาราง
  2. ขั้นตอนต่อไปคือการกำหนดคำสั่ง SQL ในกรณีของเราคือ “Select TutorialID, TutorialName from demotb” คำสั่งนี้จะดึงข้อมูลทุกแถวจากตาราง demotb
  3. ต่อไป เราจะสร้างอ็อบเจ็กต์คำสั่งที่ใช้ในการรันคำสั่ง SQL กับฐานข้อมูล ในคำสั่ง SQL คุณต้องส่งผ่านวัตถุการเชื่อมต่อและสตริง SQL
  4. ขั้นตอนต่อไป เราจะเรียกใช้คำสั่งอ่านข้อมูล ซึ่งจะดึงข้อมูลทุกแถวจากตาราง demotb
  5. ตอนนี้เรามีข้อมูลทุกแถวของตารางแล้ว เราจึงต้องการกลไกในการเข้าถึงข้อมูลแต่ละแถวทีละแถว
    • ด้วยเหตุนี้ เราจึงใช้คำสั่ง while เพื่อเข้าถึงแถวจากตัวอ่านข้อมูลทีละแถว
    • จากนั้นเราใช้เมธอด GetValue เพื่อรับค่าของ TutorialID และ TutorialName

ขั้นตอน 2) ขั้นตอนสุดท้ายคือการแสดงผลลัพธ์ให้ผู้ใช้เห็น จากนั้นจึงปิดออบเจ็กต์ทั้งหมดที่เกี่ยวข้องกับการดำเนินการกับฐานข้อมูล

ASP.NET อ่านฐานข้อมูลโดยใช้ SqlDataReader

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlCommand command;
            SqlDataReader dataReader;
            String sql, Output = " ";
            sql = "Select TutorialID,TutorialName from demotb";

            command = new SqlCommand(sql, cnn);

            dataReader = command.ExecuteReader();
            while (dataReader.Read())
            {
                Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>";
            }

            Response.Write(Output);
            dataReader.Close();
            command.Dispose();
            cnn.Close();
        }
    }
}

Code คำอธิบาย:-

  1. เราเขียนโค้ดต่อโดยแสดงค่าของตัวแปร Output โดยใช้เมธอด Response.Write
  2. สุดท้ายนี้ เราปิดออบเจ็กต์ทั้งหมดที่เกี่ยวข้องกับการดำเนินการฐานข้อมูลของเรา โปรดจำไว้ว่านี่เป็นแนวปฏิบัติที่ดีเสมอ

เมื่อตั้งค่าโค้ดข้างต้นและรันโปรเจ็กต์โดยใช้ Visual Studio คุณจะได้รับผลลัพธ์ดังต่อไปนี้

ผลลัพธ์:-

ASP.NET อ่านฐานข้อมูลโดยใช้ SqlDataReader

จากผลลัพธ์จะเห็นได้ชัดเจนว่าโปรแกรมสามารถรับค่าจากฐานข้อมูลได้ จากนั้นข้อมูลจะแสดงในเบราว์เซอร์ให้ผู้ใช้ดู

แทรกบันทึกฐานข้อมูลโดยใช้ InsertCommand

เช่นเดียวกับการเข้าถึงข้อมูล ASP.NET ก็มีความสามารถในการแทรกข้อมูลลงในฐานข้อมูลได้เช่นกัน ลองใช้โครงสร้างตารางเดียวกันนี้ในการแทรกข้อมูลดู

ID การสอน ชื่อบทช่วยสอน
1 C#
2 ASP.Net

เรามาแก้ไขโค้ดในแบบฟอร์มของเราเพื่อให้สามารถแทรกแถวต่อไปนี้ลงในตารางได้:

ID การสอน ชื่อบทช่วยสอน
3 VB.Net

ขั้นตอน 1) ขั้นตอนแรก เรามาเพิ่มโค้ดต่อไปนี้ลงในโปรแกรมของเรา โค้ดส่วนนี้จะใช้สำหรับแทรกข้อมูลลงในฐานข้อมูลของเรา

แทรกบันทึกฐานข้อมูลโดยใช้ InsertCommand

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlCommand command;
            SqlDataAdapter adapter = new SqlDataAdapter();
            String sql = "";

            sql = "Insert into demotb(TutorialID,TutorialName) values(3,'VB.Net')";

            command = new SqlCommand(sql, cnn);
            adapter.InsertCommand = new SqlCommand(sql, cnn);
            adapter.InsertCommand.ExecuteNonQuery();

            command.Dispose();
            cnn.Close();
        }
    }
}

Code คำอธิบาย:-

  1. ขั้นตอนแรกคือการสร้างตัวแปรต่อไปนี้:
    • SqlCommand – ชนิดข้อมูลนี้ใช้สำหรับกำหนดอ็อบเจ็กต์ที่ดำเนินการคำสั่ง SQL กับฐานข้อมูล อ็อบเจ็กต์นี้จะเก็บคำสั่ง SQL ที่จะรันกับฐานข้อมูล SQL Server ของเรา
    • อ็อบเจ็กต์ DataAdapter ใช้สำหรับดำเนินการคำสั่ง SQL ในการแทรก ลบ และอัปเดตข้อมูล
    • จากนั้นเรากำหนดตัวแปรสตริงชื่อ sql เพื่อเก็บสตริงคำสั่ง SQL ของเรา
  2. ขั้นตอนต่อไปคือการกำหนดคำสั่ง SQL ในกรณีของเรา เราจะใช้คำสั่งแทรกข้อมูล (insert) ซึ่งจะแทรกข้อมูลที่มี TutorialID=3 และ TutorialName=VB.Net เข้าไปในฐานข้อมูล
  3. ต่อไป เราจะสร้างอ็อบเจ็กต์คำสั่งที่ใช้ในการรันคำสั่ง SQL กับฐานข้อมูล ในคำสั่ง SQL คุณต้องส่งผ่านวัตถุการเชื่อมต่อและสตริง SQL
  4. ในคำสั่งอะแดปเตอร์ข้อมูลของเรา:
    • เชื่อมโยงคำสั่ง insert SQL กับอะแด็ปเตอร์
    • จากนั้นเรียกใช้เมธอด ExecuteNonQuery เมธอดนี้ใช้สำหรับดำเนินการคำสั่งแทรกข้อมูลลงในฐานข้อมูลของเรา
    • เมธอด ExecuteNonQuery ถูกใช้ใน C# เพื่อออกคำสั่ง DML ใดๆ (การแทรก การลบ และการอัปเดต) กับฐานข้อมูล
  5. สุดท้ายนี้ เราปิดออบเจ็กต์ทั้งหมดที่เกี่ยวข้องกับการดำเนินการฐานข้อมูลของเรา โปรดจำไว้ว่านี่เป็นแนวปฏิบัติที่ดีเสมอ

ขั้นตอน 2) ขั้นตอนที่สอง เราจะเพิ่มโค้ดเดียวกันกับในส่วนการเข้าถึงข้อมูล เพื่อแสดงข้อมูลตารางล่าสุดในเบราว์เซอร์ โดยเราจะเพิ่มโค้ดด้านล่างลงในไฟล์ demo.aspx.cs

แทรกบันทึกฐานข้อมูลโดยใช้ InsertCommand

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlCommand command;
            SqlDataReader dataReader;
            String sql, Output = " ";
            sql = "Select TutorialID,TutorialName from demotb";

            command = new SqlCommand(sql, cnn);

            dataReader = command.ExecuteReader();
            while (dataReader.Read())
            {
                Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>";
            }

            Response.Write(Output);
            dataReader.Close();
            command.Dispose();
            cnn.Close();
        }
    }
}

เมื่อตั้งค่าโค้ดข้างต้นและรันโปรเจ็กต์ใน Visual Studio คุณจะได้รับผลลัพธ์ดังต่อไปนี้

ผลลัพธ์:-

แทรกบันทึกฐานข้อมูลโดยใช้ InsertCommand

ในหน้าต่างเบราว์เซอร์ คุณจะเห็นว่าข้อมูลแถวนั้นถูกแทรกเข้าไปในฐานข้อมูลเรียบร้อยแล้ว

อัปเดตบันทึกฐานข้อมูลโดยใช้ UpdateCommand

ASP.NET มีความสามารถในการอัปเดตข้อมูลที่มีอยู่แล้วในฐานข้อมูล เราจะใช้โครงสร้างตารางเดียวกันกับที่ใช้ในตัวอย่างข้างต้นเพื่อแทรกข้อมูล

ID การสอน ชื่อบทช่วยสอน
1 C#
2 ASP.Net
3 VB.Net

มาแก้ไขโค้ดในฟอร์มของเราเพื่อให้สามารถอัปเดตแถวต่อไปนี้ได้ ค่าในแถวเดิมคือ TutorialID เป็น 3 และ TutorialName เป็น VB.Net ซึ่งเราจะอัปเดตเป็น “VB.Net Complete” ในขณะที่ค่า TutorialID จะยังคงเหมือนเดิม

แถวเก่า

ID การสอน ชื่อบทช่วยสอน
3 VB.Net

แถวใหม่

ID การสอน ชื่อบทช่วยสอน
3 VB.Net เสร็จสมบูรณ์

ขั้นตอน 1) ขั้นตอนแรก เรามาเพิ่มโค้ดต่อไปนี้ลงในโปรแกรมของเรา โค้ดส่วนนี้จะใช้เพื่ออัปเดตข้อมูลที่มีอยู่แล้วในฐานข้อมูลของเรา

อัปเดตบันทึกฐานข้อมูลโดยใช้ UpdateCommand

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlCommand command;
            SqlDataAdapter adapter = new SqlDataAdapter();
            String sql = "";

            sql = "Update demotb set TutorialName='VB.Net Complete' where TutorialID=3";

            command = new SqlCommand(sql, cnn);
            adapter.InsertCommand = new SqlCommand(sql, cnn);
            adapter.InsertCommand.ExecuteNonQuery();

            command.Dispose();
            cnn.Close();
        }
    }
}

Code คำอธิบาย:-

  1. ขั้นตอนแรกคือการสร้างตัวแปรต่อไปนี้:
    • SqlCommand – ชนิดข้อมูลนี้ใช้สำหรับกำหนดอ็อบเจ็กต์เพื่อดำเนินการคำสั่ง SQL กับฐานข้อมูล อ็อบเจ็กต์นี้จะเก็บคำสั่ง SQL ที่จะรันกับฐานข้อมูล SQL Server ของเรา
    • อ็อบเจ็กต์ DataAdapter ใช้สำหรับดำเนินการคำสั่ง SQL ในการแทรก ลบ และอัปเดตข้อมูล
    • จากนั้นเรากำหนดตัวแปรสตริงชื่อ sql เพื่อเก็บสตริงคำสั่ง SQL ของเรา
  2. ขั้นตอนต่อไปคือการกำหนดคำสั่ง SQL ในกรณีของเรา เราจะใช้คำสั่งอัปเดต ซึ่งจะอัปเดต TutorialName เป็น “VB.Net Complete” ส่วน TutorialID จะยังคงไม่เปลี่ยนแปลง และมีค่าเป็น 3
  3. ขั้นตอนต่อไป เราจะสร้างอ็อบเจ็กต์คำสั่ง ซึ่งใช้สำหรับเรียกใช้คำสั่ง SQL กับฐานข้อมูล ในคำสั่ง SQL คุณจะต้องส่งอ็อบเจ็กต์การเชื่อมต่อและสตริง SQL เข้าไป
  4. ในคำสั่ง Data Adapter ของเรา เราจะเชื่อมโยงคำสั่ง SQL เข้ากับ Adapter จากนั้นเราจะเรียกใช้เมธอด ExecuteNonQuery ซึ่งใช้ในการดำเนินการคำสั่งอัปเดตกับฐานข้อมูลของเรา
  5. สุดท้ายนี้ เราปิดออบเจ็กต์ทั้งหมดที่เกี่ยวข้องกับการดำเนินการฐานข้อมูลของเรา โปรดจำไว้ว่านี่เป็นแนวปฏิบัติที่ดีเสมอ

ขั้นตอน 2) ขั้นตอนที่สอง เราจะเพิ่มโค้ดเดียวกันกับในส่วนการเข้าถึงข้อมูล เพื่อแสดงข้อมูลตารางล่าสุดในเบราว์เซอร์ โดยเราจะเพิ่มโค้ดด้านล่างนี้

อัปเดตบันทึกฐานข้อมูลโดยใช้ UpdateCommand

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlCommand command;
            SqlDataReader dataReader;
            String sql, Output = " ";
            sql = "Select TutorialID,TutorialName from demotb";

            command = new SqlCommand(sql, cnn);

            dataReader = command.ExecuteReader();
            while (dataReader.Read())
            {
                Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>";
            }

            Response.Write(Output);
            dataReader.Close();
            command.Dispose();
            cnn.Close();
        }
    }
}

เมื่อตั้งค่าโค้ดข้างต้นและรันโปรเจ็กต์โดยใช้ Visual Studio คุณจะได้รับผลลัพธ์ดังต่อไปนี้

ผลลัพธ์:-

อัปเดตบันทึกฐานข้อมูลโดยใช้ UpdateCommand

ในหน้าต่างเบราว์เซอร์ คุณจะเห็นว่าข้อมูลในแถวนั้นได้รับการอัปเดตในฐานข้อมูลเรียบร้อยแล้ว

ลบบันทึกฐานข้อมูลโดยใช้ DeleteCommand

ASP.NET สามารถลบข้อมูลที่มีอยู่แล้วออกจากฐานข้อมูลได้ เราจะใช้โครงสร้างตารางเดียวกันกับที่ใช้ในตัวอย่างข้างต้นเพื่อลบข้อมูล

ID การสอน ชื่อบทช่วยสอน
1 C#
2 ASP.Net
3 VB.Net เสร็จสมบูรณ์

เรามาแก้ไขโค้ดในแบบฟอร์มของเราเพื่อให้สามารถลบแถวต่อไปนี้ได้:

ID การสอน ชื่อบทช่วยสอน
3 VB.Net เสร็จสมบูรณ์

ขั้นตอน 1) ขั้นตอนแรก เรามาเพิ่มโค้ดต่อไปนี้ลงในโปรแกรมของเรา โค้ดส่วนนี้จะใช้สำหรับลบข้อมูลที่มีอยู่แล้วในฐานข้อมูลของเรา

ลบบันทึกฐานข้อมูลโดยใช้ DeleteCommand

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlCommand command;
            SqlDataAdapter adapter = new SqlDataAdapter();
            String sql = "";

            sql = "Delete demotb where TutorialID=3";

            command = new SqlCommand(sql, cnn);
            adapter.DeleteCommand = new SqlCommand(sql, cnn);
            adapter.DeleteCommand.ExecuteNonQuery();

            command.Dispose();
            cnn.Close();
        }
    }
}

Code คำอธิบาย:-

  1. ความแตกต่างที่สำคัญในโค้ดนี้คือ ตอนนี้เราใช้คำสั่ง SQL ลบแล้ว คำสั่งลบนี้ใช้เพื่อลบแถวในตาราง demotb ที่มีค่า TutorialID เท่ากับ 3
  2. ในคำสั่งอะแดปเตอร์ข้อมูลของเรา เราได้เชื่อมโยงคำสั่ง SQL ลบเข้ากับอะแดปเตอร์ของเรา นอกจากนี้ เรายังเรียกใช้เมธอด ExecuteNonQuery ซึ่งใช้ในการดำเนินการคำสั่งลบกับฐานข้อมูลของเรา

ขั้นตอน 2) ขั้นตอนที่สอง เราจะเพิ่มโค้ดเดียวกันกับในส่วนการเข้าถึงข้อมูล เพื่อแสดงข้อมูลตารางล่าสุดในเบราว์เซอร์ โดยเราจะเพิ่มโค้ดด้านล่างนี้

ลบบันทึกฐานข้อมูลโดยใช้ DeleteCommand

namespace DemoApplication
{
    public partial class Demo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlCommand command;
            SqlDataReader dataReader;
            String sql, Output = " ";
            sql = "Select TutorialID,TutorialName from demotb";

            command = new SqlCommand(sql, cnn);

            dataReader = command.ExecuteReader();
            while (dataReader.Read())
            {
                Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>";
            }

            Response.Write(Output);
            dataReader.Close();
            command.Dispose();
            cnn.Close();
        }
    }
}

เมื่อตั้งค่าโค้ดข้างต้นและรันโปรเจ็กต์โดยใช้ Visual Studio คุณจะได้รับผลลัพธ์ดังต่อไปนี้

ผลลัพธ์:-

ลบบันทึกฐานข้อมูลโดยใช้ DeleteCommand

การเชื่อมต่อคอนโทรล ASP.NET กับข้อมูล

เราได้เห็นวิธีการใช้คำสั่ง ASP.NET เช่น SqlCommand และ SqlDataReader เพื่อดึงข้อมูลจากฐานข้อมูลแล้ว นอกจากนี้เรายังได้เห็นวิธีการอ่านแต่ละแถวของตารางและแสดงผลบนหน้าเว็บอีกด้วย

มีวิธีการเชื่อมโยงคอนโทรลต่างๆ เข้ากับฟิลด์ต่างๆ ในตารางได้โดยตรง ในขณะนี้ สามารถผูกคอนโทรลต่อไปนี้กับแอปพลิเคชัน ASP.NET ได้เท่านั้น:

  1. ตรวจสอบBoxรายการ
  2. RadioButtonList
  3. รายการดรอปดาวน์
  4. รายการBox

มาดูตัวอย่างการใช้ Control Binding ใน ASP.NET กัน ในที่นี้เราจะใช้ List เป็นตัวอย่างBox ตัวอย่างเช่น สมมติว่าเรามีข้อมูลต่อไปนี้ในฐานข้อมูลของเรา

ID การสอน ชื่อบทช่วยสอน
1 C#
2 ASP.Net
3 VB.Net เสร็จสมบูรณ์

ให้เราใช้รายการBox ควบคุมและดูว่ามันสามารถดึงข้อมูลจากตาราง demotb ของเราโดยอัตโนมัติได้อย่างไร มาลองทำตามขั้นตอนด้านล่างนี้กัน

ขั้นตอน 1) สร้างแบบฟอร์มเว็บพื้นฐาน จากกล่องเครื่องมือใน Visual Studio ให้ลากและวางส่วนประกอบ 2 ชิ้น ได้แก่ ป้ายกำกับและรายการBoxใช่ จากนั้นให้ดำเนินการตามขั้นตอนย่อยต่อไปนี้:

  1. กำหนดค่าข้อความของป้ายกำกับแรกเป็น TutorialID
  2. กำหนดค่าข้อความของป้ายกำกับที่สองเป็น TutorialName

ด้านล่างนี้คือลักษณะของแบบฟอร์มหลังจากดำเนินการตามขั้นตอนข้างต้นแล้ว

การเชื่อมต่อคอนโทรล ASP.NET กับข้อมูล

ขั้นตอน 2) ขั้นตอนต่อไปคือการเริ่มเชื่อมต่อแต่ละรายการเข้าด้วยกันBox ไปยังตารางฐานข้อมูล

  1. ขั้นแรก คลิกที่รายการBox สำหรับ TutorialID นี้ จะแสดงกล่องโต้ตอบอีกกล่องหนึ่งทางด้านข้างของตัวควบคุม
  2. จากกล่องโต้ตอบ ให้คลิกที่ตัวเลือก "เลือกแหล่งข้อมูล"

การเชื่อมต่อคอนโทรล ASP.NET กับข้อมูล

ขั้นตอน 3) จากนั้นคุณจะเห็นกล่องโต้ตอบ คุณสามารถใช้กล่องโต้ตอบนี้เพื่อสร้างแหล่งข้อมูลใหม่ แหล่งข้อมูลนี้จะแสดงถึงการเชื่อมต่อกับฐานข้อมูล เลือกตัวเลือก "แหล่งข้อมูลใหม่"

การเชื่อมต่อคอนโทรล ASP.NET กับข้อมูล

ขั้นตอน 4) หน้าจอด้านล่างจะได้รับแจ้งหลังจากเลือกแหล่งข้อมูลใหม่ในขั้นตอนสุดท้าย ที่นี่เราต้องพูดถึงประเภทของแหล่งข้อมูลที่เราต้องการสร้าง

  1. เลือกตัวเลือกฐานข้อมูลเพื่อทำงานกับฐานข้อมูล SQL Server
  2. ตอนนี้เราต้องตั้งชื่อให้กับแหล่งข้อมูลของเรา ที่นี่เราจะตั้งชื่อเป็น DemoDataSource
  3. สุดท้าย เราคลิกปุ่ม OK เพื่อไปยังหน้าจอถัดไป

การเชื่อมต่อคอนโทรล ASP.NET กับข้อมูล

ขั้นตอน 5) ตอนนี้เราจำเป็นต้องสร้างการเชื่อมต่อกับฐานข้อมูลของเรา ในหน้าจอถัดไป ให้คลิกที่ปุ่ม "สร้างการเชื่อมต่อใหม่"

การเชื่อมต่อคอนโทรล ASP.NET กับข้อมูล

ขั้นตอน 6) ถัดไปคุณจะต้องเพิ่มข้อมูลรับรองเพื่อเชื่อมต่อกับฐานข้อมูล

  1. เลือกชื่อเซิร์ฟเวอร์ที่ติดตั้ง SQL Server อยู่
  2. ป้อนรหัสผู้ใช้และรหัสผ่านเพื่อเชื่อมต่อกับฐานข้อมูล
  3. เลือกฐานข้อมูลเป็น demotb
  4. คลิกปุ่มตกลง

การเชื่อมต่อคอนโทรล ASP.NET กับข้อมูล

ขั้นตอน 7) ในหน้าจอถัดไป คุณจะเห็นตาราง demotb เพียงคลิกปุ่มถัดไปเพื่อยอมรับการตั้งค่าเริ่มต้น

การเชื่อมต่อคอนโทรล ASP.NET กับข้อมูล

ขั้นตอน 8) ตอนนี้คุณสามารถทดสอบการเชื่อมต่อได้ในหน้าจอถัดไป

  1. คลิกที่ปุ่ม "ทดสอบแบบสอบถาม" เพื่อตรวจสอบว่าคุณสามารถดึงค่าจากตารางได้หรือไม่
  2. คลิกปุ่มเสร็จสิ้นเพื่อดำเนินการตัวช่วยสร้างให้เสร็จสมบูรณ์

การเชื่อมต่อคอนโทรล ASP.NET กับข้อมูล

ขั้นตอน 9) ในหน้าจอสุดท้ายนี้ คุณสามารถคลิกปุ่ม OK ได้เลย ขั้นตอนนี้จะทำการเชื่อมโยงรายการ TutorialID เข้ากับระบบBox ไปยังชื่อฟิลด์ TutorialID ในตาราง demotb

การเชื่อมต่อคอนโทรล ASP.NET กับข้อมูล

ขั้นตอน 10) ตอนนี้ถึงเวลาผูกรายการ TutorialName แล้วBox ไปยังช่อง TutorialName

  1. ขั้นแรก คลิกที่รายการ TutorialNameBox.
  2. ถัดไป ให้เลือกแหล่งข้อมูลในกล่องโต้ตอบที่ปรากฏขึ้นทางด้านข้างของรายการBox.

การเชื่อมต่อคอนโทรล ASP.NET กับข้อมูล

ขั้นตอน 11) คุณจะเห็น DemoDataSource แล้วเมื่อเลือกแหล่งข้อมูลในหน้าจอถัดไป

  1. เลือกแหล่งข้อมูลสาธิต (DemoDataSource)
  2. คลิกที่ปุ่มตกลง

การเชื่อมต่อคอนโทรล ASP.NET กับข้อมูล

หากดำเนินการตามขั้นตอนข้างต้นทั้งหมดดังที่แสดง คุณจะได้รับผลลัพธ์ตามที่ระบุไว้ด้านล่าง

ผลลัพธ์:-

การเชื่อมต่อคอนโทรล ASP.NET กับข้อมูล

จากผลลัพธ์ คุณจะเห็นว่ารายการ (List)Boxจะแสดง TutorialID และ TutorialName ตามลำดับ

คำถามที่พบบ่อย

ใช่แล้ว ผู้ช่วย AI อย่างเช่น GitHub Copilot สามารถสร้างโครงร่างของเมธอด insert, update และ delete ใน ADO.NET และอธิบายแต่ละบรรทัดได้ อย่างไรก็ตาม ควรตรวจสอบและทดสอบ SQL ที่สร้างขึ้นเสมอ เนื่องจาก AI อาจพลาดรายละเอียดเกี่ยวกับการกำหนดพารามิเตอร์หรือการจัดการการเชื่อมต่อได้

ใช่ คุณสามารถคัดลอกข้อผิดพลาด ADO.NET หรือข้อผิดพลาด SQL ไปวางในเครื่องมือ AI เพื่อรับสาเหตุและวิธีแก้ไขที่เป็นไปได้ในรูปแบบภาษาที่เข้าใจง่าย โปรดตรวจสอบคำแนะนำกับโครงสร้างฐานข้อมูลของคุณก่อนนำไปใช้ในโค้ดที่ใช้งานจริง

ใช้คิวรีแบบมีพารามิเตอร์ เพิ่มค่าด้วยอ็อบเจ็กต์ SqlParameter แทนการต่ออินพุตเข้ากับสตริง SQL วิธีนี้จะแยกข้อมูลออกจากคำสั่งและป้องกันการโจมตีแบบ Injection พร้อมทั้งปรับปรุงการนำแผนคิวรีกลับมาใช้ใหม่ได้อีกด้วย

ExecuteNonQuery รันคำสั่ง INSERT, UPDATE และ DELETE แล้วส่งคืนแถวที่ได้รับผลกระทบ ExecuteReader ส่งคืน SqlDataReader แบบอ่านไปข้างหน้าเท่านั้นสำหรับผลลัพธ์จากคำสั่ง SELECT ExecuteScalar ส่งคืนค่าเดียว เช่น จำนวนนับ จากแถวและคอลัมน์แรก

SqlDataReader ดึงข้อมูลทีละแถวและต้องการการเชื่อมต่อที่เปิดอยู่ จึงทำให้การอ่านข้อมูลรวดเร็ว ส่วน SqlDataAdapter จะเติมข้อมูลลงใน DataSet หรือ DataTable ในหน่วยความจำ และยังรันคำสั่งแทรก อัปเดต และลบข้อมูลได้อีกด้วย

ควรจัดเก็บค่าเหล่านี้ไว้ในส่วน connectionStrings ของไฟล์ web.config แทนที่จะเขียนลงในโค้ดโดยตรงของหน้าเว็บ วิธีนี้จะช่วยรวมศูนย์การตั้งค่า เก็บข้อมูลรับรองไว้ในที่อื่นที่ไม่ใช่ซอร์สโค้ด และช่วยให้คุณสามารถเปลี่ยนแปลงค่าเหล่านี้ได้โดยไม่ต้องคอมไพล์แอปพลิเคชันใหม่

ADO.NET ร่วมกับ SqlCommand ช่วยให้ควบคุมการทำงานได้อย่างละเอียดและเพิ่มความเร็วสำหรับหน้าเว็บแบบง่ายๆ ส่วน Entity Framework จะแปลงตารางเป็นอ็อบเจ็กต์และลดโค้ดซ้ำซ้อนสำหรับแอปพลิเคชันขนาดใหญ่ หลายทีมใช้ทั้งสองอย่างผสมผสานกัน ขึ้นอยู่กับประสิทธิภาพและความซับซ้อนที่ต้องการ

การเชื่อมต่อที่เปิดอยู่จะยึดทรัพยากรส่วนกลางไว้บนเซิร์ฟเวอร์ การเรียกใช้เมธอด Close หรือ Dispose โดยควรทำภายในบล็อก using จะส่งคืนการเชื่อมต่อกลับไปยังพูล ป้องกันการรั่วไหล และทำให้แอปพลิเคชันตอบสนองได้อย่างต่อเนื่องภายใต้ภาระงานหนัก

สรุปโพสต์นี้ด้วย: