คือพี่ที่ฝึกงานเค้ามีฐานข้อมูลอยู่ประมาณ 10 ตาราง เค้าอยากให้ผมสร้างตารางขึ้นมา 1 ตารางเพื่อนำมาเก็บข้อมูล
ในคอลัมน์ TAG ของทั้ง 10 ตารางไว้ในตารางที่สร้างขึ้นมาใหม่แล้วให้มี คอลัมน์ที่บอกถึงว่า TAG นั้นมาจากตารางไหนด้วย โครงสร้างของตารางที่สร้างขึ้นใหม่เป็นประมาณนี้ครับ
ตารางประกอบด้วยคอลัมน์ ID เป็น AutoNumber, class เป็น Text (เก็บชื่อของตาราง),TAG เป็น Number
แต่ปัญหาคือ 10 ตารางที่ว่าข้อมูลรวมกัน มีประมาณ 1 แสนกว่าแถว ผมลองทำแค่ 1 ซึ่งมีประมาณ 5 พัน แถวก็ช้ามากเลย จึงมาขอคำแนะนำว่าจะมีวิธีไหนทำให้มันเร็วขึ้นกว่านี้มั๊ยครับนี่เป็นโค๊ดที่ผมใช้
Code (VB.NET)
openConnection()
Dim SQL As String = "select TAG from " & ComboTable.Text
Dim dts As DataTable = connectAcc(SQL).Tables(0)
Dim rows As DataRow
For Each rows In dts.Rows
Dim temp As String = CType(rows("TAG"), String)
Dim command As String = "insert into MV_TAGCHECKING(Class_name,TAGS) values('" & ComboTable.Text & "','" & temp & "')"
connectAcc(command)
Next
MsgBox("insert success!")
Module ติดต่อฐานข้อมูล
Code (VB.NET)
Public Sub openConnection()
If conn.State = ConnectionState.Closed Then
conn.Open()
End If
End Sub
Public Function connectAcc(ByVal command As String) As DataSet
Dim a As New DataSet
'a.Tables.Add(0)
Try
Dim da As OleDbDataAdapter = New OleDbDataAdapter(command, conn)
a.Tables.Clear()
da.Fill(a)
conn.Close()
Catch ex As Exception
MessageBox.Show("Error" & ex.Message)
a.Tables.Clear()
a.Tables.Add(0)
Return a
End Try
Return a
End Function