나는 액세스 DB를 쿼리하는 응용 프로그램을 빌드하는 데 VS를 사용하고 있습니다. 양식 탭 중 하나에는 12 개의 버튼이 있으며 각 버튼 근처에는 눌린 시간 수가 표시된 레이블이 있습니다. 폼이로드되면 DB에 쿼리하여 해당 날짜에 사용자가 누른 횟수를 표시합니다.vb.net 여러 테이블 한 테이블
Public Class Form1
Dim connString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=\\networkdrive\DB_Reg_V01_10.accdb"
Dim da1, da2, da3, da4, da5, da6, da7, da8, da9, da10, da11, da12 As OleDbDataAdapter
Dim ds1, ds2, ds3, ds4, ds5, ds6, ds7, ds8, ds9, ds10, ds11, ds12 As DataSet
Dim tables As DataTableCollection
Dim source1 As New BindingSource
Dim provider, dataFile As String
Dim cmd As OleDbCommand = Nothing
Dim myConnection As OleDbConnection = New OleDbConnection
Private Sub Form1_Load(sender As System.Object, e As EventArgs) Handles MyBase.Load
ds1 = New DataSet
tables = ds1.Tables
da1 = New OleDbDataAdapter("Select Count(*) from TB_Atividades Where ([User] = '" & boxUser.Text & "') AND (Data = DATE()) AND (Prod = 'Cat23')", myConnection)
da1.Fill(ds1, "ID")
Dim view1 As New DataView(tables(0))
DataGridView1.DataSource = view1
lblCount1.Text = DataGridView1.CurrentCell.Value.ToString()
ds2 = New DataSet
tables = ds2.Tables
da2 = New OleDbDataAdapter("Select Count(*) from TB_Atividades Where ([User] = '" & boxUser.Text & "') AND (Data = DATE()) AND (Prod = 'Cat4410')", myConnection)
da2.Fill(ds2, "ID")
Dim view1 As New DataView(tables(0))
DataGridView1.DataSource = view2
lblCount2.Text = DataGridView1.CurrentCell.Value.ToString()
/.../
ds12 = New DataSet
tables = ds12.Tables
da12 = New OleDbDataAdapter("Select Count(*) from TB_Atividades Where ([User] = '" & boxUser.Text & "') AND (Data = DATE()) AND (Prod = 'Cat101')", myConnection)
da12.Fill(ds12, "ID")
Dim view12 As New DataView(tables(0))
DataGridView1.DataSource = view12
lblCount12.Text = DataGridView1.CurrentCell.Value.ToString()
/.../
코드가 작동하지만 시작하는 데 시간이 걸립니다. 나는 무엇을 더 효율적으로 만들지 만 효율적입니다.
DB에 대한 호출 횟수를 줄이는 방법이 있습니까?
미리 알아 두십시오.
필요할 때 데이터를로드하십시오. 또한 DataTable 당 1 개의 DataSet이 필요하지 않습니다. 그 중 하나는 이름을 가질 수있는 여러 테이블을 저장할 수 있다는 점입니다. 당신은 COUNT 쿼리를 위해 DataTable이 필요하지 않습니다. 단지'ExecuteScalar'와 함께 명령을 사용하고 그 결과를 변수에 저장하십시오. – Plutonix