ฉันเกือบลืม VB ทั้งหมดที่ฉันได้เรียนรู้เมื่อไม่กี่ปีที่ผ่านมา ดังนั้นฉันจึงมาทบทวนมันในวันนี้ การเชื่อมต่อฐานข้อมูล ADO กับ VB ไม่ใช่เรื่องยากนัก
ขั้นตอนแรกของการเชื่อมต่อ (อ่านอย่างละเอียด)
สำหรับผู้เริ่มต้น บทช่วยสอนที่นี่มีรายละเอียดมากที่สุด ขั้นตอนแรกในการเชื่อมต่อกับฐานข้อมูล ADO คือองค์ประกอบใดที่ควรเพิ่ม ชื่อเต็มคือคอมโพเนนต์ Microsoft ADO Data Control 6.0 (SP6) (OLEDB)
ในคอมโพเนนต์ Microsoft ADO Data Control 6.0 (SP6) (OLEDB) มีชื่อ: Adodc data control คุณต้องเพิ่มเข้าไป ค้นหา ACCES ในตำแหน่งข้อมูลการควบคุมข้อมูล Adodc
วิธีการอ้างอิงโดยตัวควบคุม (ค่าอ้างอิงถึงชื่อ)
คัดลอกรหัสรหัสดังต่อไปนี้:
สำหรับ i = 1 ถึง Adodc1.Recordset.RecordCount
ถ้าไม่ใช่ Adodc1.Recordset.EOF แล้ว
Combo1.AddItem Adodc1.Recordset.Fields("value").Value
Adodc1.Recordset.Movenext
สิ้นสุดถ้า
ถัดไป
ผู้เขียนที่ยกมาโดยโค้ดนี้คือ ydl890406 ตอนที่ผมเขียนเรื่องนี้ในกลุ่ม VB ผมถูกขอให้ยืมมัน ต่อมาผมพบว่ามีข้อผิดพลาดมากมาย หลังจากแก้ไขหลายครั้งแล้วก็ยังมีข้อผิดอยู่ เพียงเขียนใหม่ นี่คือรหัสภายหลัง เวลาผ่านไปอย่างรวดเร็วและกลุ่ม VB ก็ยุบไปเช่นกัน ต่อมาด้วยเหตุผลที่ไม่ทราบสาเหตุ บทช่วยสอนจำนวนมากจึงใช้โค้ดนี้
ส่วนที่สองคือการเชื่อมต่อโค้ด AOD เนื่องจากส่วนที่สองเกี่ยวข้องกับวัตถุ Recordset และวัตถุการเชื่อมต่อ คุณจึงสามารถเรียนรู้ได้ด้วยตนเองและเขียนด้วยตนเอง
วัตถุชุดระเบียนและวัตถุการเชื่อมต่อคืออะไร วัตถุการเชื่อมต่อคือการเชื่อมต่อกับแหล่งข้อมูล และวัตถุชุดระเบียนคือข้อมูลการดำเนินงาน
ค้นหาคอมโพเนนต์ Microsoft ADO Data Control 6.0 (SP6) (OLEDB)
VB ใช้ ADO เพื่อเชื่อมต่อกับฐานข้อมูล SQL Server
'ข้อมูลแหล่งข้อมูลคงที่ Public Const conn As String = "Provider = SQLOLEDB.1;Password = sa; UserID = sa; Initial Catalog = StudentFiles; Data Source = localhost" Public Const CONNECT_LOOP_MAX = 10 'ดำเนินการเชื่อมต่อเพียงครั้งเดียวและคุณสามารถ เข้าถึงฐานข้อมูลจำนวนครั้งPrivate IsConnect As Boolean 'ทำเครื่องหมายว่าฐานข้อมูลเชื่อมต่อหรือไม่Private Connect_Num As Integer 'ทำเครื่องหมายจำนวนครั้งที่เข้าถึงข้อมูลหลังจากดำเนินการ Connect() functionPrivate cnn As ADDODB.Connection 'เชื่อมต่อวัตถุเพื่อเชื่อมต่อกับฐานข้อมูลส่วนตัวอีกครั้งเป็น ADDODB.Recordset 'วัตถุชุดระเบียนที่บันทึกชุดผลลัพธ์ //เชื่อมต่อกับฐานข้อมูลส่วนตัวเชื่อมต่อย่อยส่วนตัว () 'ถ้าเครื่องหมายการเชื่อมต่อถ้าเป็นจริงให้ส่งคืน IF IsConnect = True จากนั้นออกจาก Sub End หากตั้งค่า cnn = ADODB ใหม่ การเชื่อมต่อ 'คีย์ใหม่ถูกใช้เพื่อสร้างวัตถุใหม่ cnn cnn.ConnectionString = conn cnn.Open 'กำหนดสถานะของการเชื่อมต่อหาก cnn.State <> adStateOpen จากนั้น MsgBox "ความล้มเหลวในการเชื่อมต่อฐานข้อมูล" สิ้นสุดหาก 'ตั้งค่า ID การเชื่อมต่อซึ่งระบุว่าเชื่อมต่อกับฐานข้อมูล IsConnect = TrueEnd Sub' ตัดการเชื่อมต่อกับฐานข้อมูล Private Sub DisConnect () Dim rc ตราบใดที่ IsConnect = False จากนั้นออกจาก Sub End ถ้า 'ปิดการเชื่อมต่อ cnn.Close 'Release cnn Set cnn = Nothing IsConnect = FalseEnd Sub'ใช้ Connect_Num เพื่อควบคุมการเชื่อมต่อข้อมูล Public Sub DB_Connect() Connect_Num = Connect_Num + 1 ConnectEnd Sub'ใช้ Connect_Num เพื่อควบคุมข้อมูล ตัดการเชื่อมต่อ Public Sub DB_Disconnect () ถ้า Connect_Num >= CONNECT_LOOP_MAX จากนั้น Connect_Num = 0 ตัดการเชื่อมต่อสิ้นสุดหากสิ้นสุด Sub'Force เพื่อปิดโหมด api เพื่อเข้าถึงฐานข้อมูลรัสเซียรีเซ็ตตัวนับ Public Sub DBapi_Disconnect () Connect_Num = 0 DisconnectEnd Sub'Execute การทำงานของฐานข้อมูล language'byval ค่าของพารามิเตอร์ถูกส่งผ่าน และพารามิเตอร์จะไม่เปลี่ยนแปลงในระหว่างกระบวนการถ่ายโอน (นั่นคือ ค่าพารามิเตอร์จะถูกส่งไปยังกระบวนการแทนที่อยู่ ซึ่งจะช่วยให้กระบวนการเข้าถึงสำเนาของตัวแปร และ กระบวนการไม่สามารถเปลี่ยนค่าของตัวแปรได้ ); .คำสั่ง 'สร้างวัตถุคำสั่ง cmd DB_Connect 'เชื่อมต่อกับฐานข้อมูล Set cmd.ActiveConnection = cnn 'ตั้งค่าแอตทริบิวต์ ActiveConnect ของ cmd และระบุการเชื่อมต่อฐานข้อมูลที่เกี่ยวข้อง cmd.CommandText = TmpSQLstmt 'ตั้งค่าข้อความคำสั่งที่จะดำเนินการ'MsgBox TmpSQLstmt cmd.Execute 'ดำเนินการชุดคำสั่ง cmd = ไม่มีสิ่งใด DB_DisConnect 'ตัดการเชื่อมต่อเปิดการเชื่อมต่อกับฐานข้อมูล End Sub' ดำเนินการคำสั่งสืบค้นฐานข้อมูล Public Function QueryExt (ByVal TmpSQLstmt As String ) As ADODB.Recordset Dim rst As ใหม่ ADODB.Recordset 'สร้างวัตถุ Rescordset rst DB_Connect 'เชื่อมต่อกับฐานข้อมูล ตั้งค่า rst.ActiveConnection = cnn 'ตั้งค่าคุณสมบัติ ActiveConnection ของ rst และระบุการเชื่อมต่อกับฐานข้อมูลที่เกี่ยวข้องกับมัน rst.CursorType = adOpenDynamic ' ตั้งค่าประเภทเคอร์เซอร์ rst. LockType = adLockOptimistic 'ตั้งค่าประเภทล็อค rst.Open TmpSQLstmt 'เปิดชุดระเบียน Set QueryExt = rst 'ส่งคืนฟังก์ชัน recordsetEnd