Contents

ตัวอย่าง VB.NET SQL สำหรับการสืบค้นฐานข้อมูลอย่างมีประสิทธิภาพ

VB.NET นำเสนอแนวทางที่มีประสิทธิภาพในการดำเนินงานฐานข้อมูล พร้อมด้วยกรอบการทำงานที่แข็งแกร่ง ด้วยพลังของมัน คุณสามารถรับข้อมูลที่เกี่ยวข้องได้อย่างรวดเร็วและใช้ความพยายามเพียงเล็กน้อย

ตรวจสอบแอปพลิเคชันตัวอย่างที่สาธิตการใช้งาน VB.NET เพื่อดำเนินการสืบค้น SQL และค้นพบกลยุทธ์ในการเพิ่มประสิทธิภาพการรับข้อมูลทั้งในด้านประสิทธิผลและทรัพยากร

การตั้งค่าเซิร์ฟเวอร์ SQL ภายในเครื่องของคุณ

ขั้นแรก ขอแนะนำให้สร้างเซิร์ฟเวอร์ SQL เพื่อตรวจสอบแต่ละส่วนประกอบตามลำดับ ภาพประกอบต่อมาแสดงแพลตฟอร์มที่ใช้ Windows อย่างไรก็ตาม สำหรับผู้ที่ใช้ระบบปฏิบัติการทางเลือก เช่น Linux และใช้เซิร์ฟเวอร์ SQL ที่แตกต่างกัน ก็ไม่มีเหตุผลที่ต้องกังวล เนื่องจากหลักการพื้นฐานจะยังคงอยู่

เนื่องจากลักษณะที่ไม่ซับซ้อนและไม่มีข้อกำหนดสำหรับการตั้งค่าหรือการกำหนดค่าใดๆ SQLite จึงเป็นตัวเลือกในอุดมคติสำหรับผู้ที่ยังใหม่ต่อระบบการจัดการฐานข้อมูล

ในการเริ่มต้นกระบวนการ ให้สร้างไดเร็กทอรีใหม่บนระบบไฟล์ของคุณ จากนั้นจึงเข้าถึงอินเทอร์เฟซพร้อมรับคำสั่ง และนำทางไปยังตำแหน่งที่ระบุภายในเทอร์มินัล ใช้ขั้นตอนต่อมาเพื่อดำเนินการคำสั่งที่สร้างโครงการ.NET ใหม่ล่าสุดโดยใช้ Visual Basic.NET เป็นภาษาการเขียนโค้ดหลักสำหรับการพัฒนา:

 dotnet new console -lang VB -o MyVBApp

เพื่อรวมไลบรารี SQLite เข้ากับโครงการ Visual Basic.NET ของคุณ คุณควรใช้ NuGet ซึ่งเป็นระบบการจัดการแพ็คเกจที่ใช้กันอย่างแพร่หลายสำหรับแพลตฟอร์ม.NET ในการทำเช่นนั้น ให้รันคำสั่งต่อไปนี้ในเทอร์มินัลหรือสภาพแวดล้อมการพัฒนาแบบรวม (IDE):

 dotnet add package System.Data.SQLite

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

ซอร์สโค้ดที่สมบูรณ์สำหรับอินสแตนซ์ตัวอย่างจะถูกจัดเก็บถาวรภายในคลังดิจิทัลที่ครอบคลุมของโปรเจ็กต์ ซึ่งพร้อมสำหรับการเข้าถึงและตรวจสอบบนแพลตฟอร์มการทำงานร่วมกันที่เรียกว่า GitHub Repository

โปรดรับไฟล์"InitializeDatabase.vb"ซึ่งอยู่ภายในพื้นที่เก็บข้อมูลของโครงการของเรา ไฟล์เฉพาะนี้มีการกำหนดค่าที่จำเป็นสำหรับการสร้างฐานข้อมูลของคุณ การอ่านเนื้อหาจะเผยให้เห็นโปรไฟล์ผู้ใช้และข้อมูลทางภูมิศาสตร์ที่เกี่ยวข้องมากมาย ซึ่งทำหน้าที่เป็นเทมเพลตที่มีประโยชน์สำหรับวัตถุประสงค์ของคุณเอง

โปรดแก้ไขข้อมูลโค้ดที่ให้มาโดยรวมการเปลี่ยนแปลงที่แนะนำ โดยคงความหมายดั้งเดิม และรักษาน้ำเสียงที่เป็นทางการ

 Module Program
    Sub Main(args As String())
        DatabaseInitializer.InitializeDb()
    End Sub
End Module

เมื่อรันแอพพลิเคชั่นซอฟต์แวร์นี้ เราควรสังเกตการสร้างไฟล์ชื่อ “mydatabase.db” ไฟล์ดังกล่าวแสดงถึงฐานข้อมูลเชิงสัมพันธ์ระดับประถมศึกษาซึ่งทำหน้าที่เป็นรากฐานสำหรับการสาธิตในภายหลัง

/th/images/database-create-with-visual-basic.jpg

การสร้างการเชื่อมต่อฐานข้อมูลด้วย SQL ใน VB.NET

เพื่ออำนวยความสะดวกในการรวม SQLite ภายในแอปพลิเคชัน Visual Basic.NET จำเป็นอย่างยิ่งที่จะต้องเข้าถึงกระบวนการด้วยความเรียบง่ายและสะดวก ดังนั้นควรไปที่ไฟล์ Program.vb และกำจัดเนื้อหาปัจจุบัน ไฟล์นี้แสดงถึงลักษณะพื้นฐานของโครงการ โดยทำหน้าที่เป็นองค์ประกอบหลัก

การเชื่อมต่อกับไฟล์ฐานข้อมูล “mydatabase.db” สามารถทำได้โดยใช้คำสั่งต่อไปนี้ในโค้ดของคุณ:

 Dim connectionString As String = "Data Source=mydatabase.db;Version=3;"

แหล่งข้อมูลทำหน้าที่กำหนดไฟล์เฉพาะที่เป็นที่เก็บฐานข้อมูล และหากไม่มีไฟล์ดังกล่าว SQLite จะสร้างไฟล์ขึ้นมาโดยอัตโนมัติเมื่อเริ่มการเชื่อมต่อกับระบบ

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

 Using conn As New SQLiteConnection(connectionString)
    conn.Open()

    ' Database operations go here
End Using

คำชี้แจงการใช้รับประกันว่าการเชื่อมต่อจะสิ้นสุดลงอย่างราบรื่นเมื่อสิ้นสุดการดำเนินการ

เวอร์ชันสุดท้ายของไฟล์ Program.vb ของคุณอาจมีลักษณะคล้ายกับรูปแบบต่อไปนี้:

 Imports System
Imports System.Data.SQLite

Module Program
    Sub Main(args As String())
        Dim connectionString As String = "Data Source=mydatabase.db;Version=3;"

        Try
            Using conn As New SQLiteConnection(connectionString)
                conn.Open()
                Console.WriteLine("Successfully connected to the database!")

                'You can perform database operations here.
            End Using
        Catch ex As SQLiteException
            Console.WriteLine("Error: " & ex.Message)
        End Try
    End Sub
End Module

โปรแกรมนี้ได้รับการออกแบบเพื่อสร้างการเชื่อมต่อกับฐานข้อมูล"mydatabase.db"และแสดงการแจ้งเตือนความสำเร็จเมื่อสร้างการเชื่อมต่อสำเร็จ ในกรณีที่มีข้อผิดพลาดเกิดขึ้นในระหว่างกระบวนการนี้ โปรแกรมจะพิมพ์ข้อมูลที่เกี่ยวข้องไปยังคอนโซลเพื่อการวิเคราะห์ต่อไป

วิธีดึงข้อมูลและโหลดลงในอาร์เรย์

การใช้คำสั่ง SELECT SQL มีความสำคัญอย่างยิ่งในการดึงข้อมูลจากระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) เช่น MySQL หรือ PostgreSQL สมมติว่ามีเอนทิตีแบบตารางที่เรียกว่า"ผู้ใช้"ภายใน RDBMS ซึ่งมีบันทึกที่มีคุณลักษณะต่างๆ หากต้องการแยกค่าของคอลัมน์"ชื่อ"ออกจากแถวแต่ละแถวของตาราง"ผู้ใช้"จะต้องสร้างคำสั่ง SELECT ให้สอดคล้องกัน

 SELECT Name FROM Users

หนึ่งอาจดึงข้อมูลจากฐานข้อมูลและจัดเก็บไว้ในคอลเลกชันโดยรวมโค้ดต่อไปนี้ภายในโมดูล Program.vb:

 Dim query As String = "SELECT Name FROM Users"
Dim names As New List(Of String)()

Using conn As New SQLiteConnection(connectionString)
    conn.Open()

    Using cmd As New SQLiteCommand(query, conn)
        Using reader As SQLiteDataReader = cmd.ExecuteReader()
            While reader.Read()
                names.Add(reader("Name").ToString())
            End While
        End Using
    End Using
End Using

' Now the 'names' list is full of users' names.
' You can convert this list to an array if you want:
Dim namesArray() As String = names.ToArray()

' Print array content for testing purposes
For Each name In namesArray
   Console.WriteLine(name)
Next 

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

/th/images/dotnet-run-users-show.jpg

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

วิธีใช้ INSERT เพื่อเพิ่มข้อมูลลงในฐานข้อมูล

คำสั่ง INSERT INTO ใช้สำหรับรวบรวมข้อมูลใหม่ลงในฐานข้อมูล เพื่อแสดงให้เห็น ให้เราตรวจสอบสถานการณ์สมมติของตาราง"ผู้ใช้"ซึ่งมีคอลัมน์สองคอลัมน์ที่ระบุว่าเป็น"ชื่อ"และ"ประเทศ"

หากต้องการสร้างผู้ใช้ใหม่ในฐานข้อมูลโดยใช้ Structured Query Language (SQL) เราอาจใช้แบบสอบถามพื้นฐานต่อไปนี้:

 INSERT INTO Users (Name, Country) VALUES ('Fatih', 'TR')

เพื่อรวมผู้ใช้ใหม่ในฐานข้อมูลโดยใช้คำถามนี้ ให้แก้ไขเอกสาร Program.vb ตามรายละเอียดด้านล่าง:

 Dim query As String = $"INSERT INTO Users (Name, Country) VALUES ('{name}', '{country}')"
    Using conn As New SQLiteConnection(connectionString)
        conn.Open()

        Using cmd As New SQLiteCommand(query, conn)
            cmd.ExecuteNonQuery()
        End Using
    End Using

    Console.WriteLine($"{name} has been successfully added to the database!") 

ในกรณีนี้ มีการใช้แนวทางพื้นฐานที่เกี่ยวข้องกับการแก้ไขสตริงเพื่อสร้างแบบสอบถาม อย่างไรก็ตาม วิธีการดังกล่าวควรละทิ้งภายในขอบเขตของสถาปัตยกรรมซอฟต์แวร์ที่เกิดขึ้นจริง เนื่องจากมีความอ่อนไหวต่อการละเมิดความปลอดภัยที่ใช้การฉีด SQL แนวทางปฏิบัติที่ดีกว่าคือการใช้การสืบค้นแบบกำหนดพารามิเตอร์ ซึ่งไม่เพียงเพิ่มความปลอดภัยในระหว่างการดำเนินการฐานข้อมูล แต่ยังส่งเสริมประสิทธิภาพที่มากขึ้นด้วย

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

 Dim query As String = "INSERT INTO Users (Name, Country) VALUES (@Name, @Country)"
'...
cmd.Parameters.AddWithValue("@Name", userName)
cmd.Parameters.AddWithValue("@Country", userCountry)

เคล็ดลับอื่น ๆ สำหรับการทำงานกับฐานข้อมูลจากภายใน VB.Net

/th/images/how-do-reverse-proxies-work-102.jpg

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

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

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

ตรวจสอบให้แน่ใจว่าฐานข้อมูลของคุณได้รับการอัปเดตและปรับโครงสร้างใหม่เป็นประจำเพื่อให้มั่นใจถึงประสิทธิภาพสูงสุดในขณะที่โมเดลข้อมูลของคุณพัฒนาไปตามกาลเวลา

โปรดตรวจสอบให้แน่ใจว่าคุณสร้างไฟล์ซ้ำซ้อนเพื่อเป็นมาตรการป้องกันในกรณีที่เกิดเหตุการณ์ที่ไม่คาดคิด

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

วิธีการเดินทาง VB.NET ของคุณให้ก้าวไกลยิ่งขึ้น

VB.NET มีความสัมพันธ์ที่ดีกับระบบนิเวศของ Microsoft ที่กว้างขวาง โดยนำเสนอการผสมผสานที่ไม่มีใครเทียบได้ของความเสถียรและความสะดวกในการใช้งาน เพื่อให้เข้าใจถึงขีดความสามารถของตนอย่างถ่องแท้ จะเป็นการระมัดระวังที่จะเริ่มด้วยแหล่งข้อมูลที่เชื่อถือได้ที่ Microsoft จัดหาให้ จากนั้น เจาะลึกบทเรียนออนไลน์ หัวข้อสนทนา และเครือข่ายที่ผู้เชี่ยวชาญผู้ช่ำชองมักจะแบ่งปันภูมิปัญญาและความเชี่ยวชาญของตนอย่างไม่เห็นแก่ตัว

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