PDA

View Full Version : کاهش سرعت در بارگزاری اطلاعات



Hossis
شنبه 07 خرداد 1390, 17:29 عصر
من با استفاده از روش زیر به بانک اطلاعاتی وصل می شوم اما سرعت بارگزاری اطلاعات خیلی کند است و کاربر باید چند ثانیه ای صبر کند تا جستجو انجام شده و نتیجه آن برایش لیست شود.
البته دقت داشته باشید که حجم اطلاعات هم زیاد است و به عنوان مثال فایل بانک اطلاعاتی 35 تا 70 مگابایت می رسد.
به نظر شما راه سریعتری برای این کار هست؟؟
این هم کد مورد نظر

#Region "SQL Declaration"
Dim CnnStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\db.accdb"
Dim da As OleDbDataAdapter
Dim ds As New DataSet
Dim cnn As New OleDbConnection(CnnStr)
Dim ra As Integer
Dim DG As New DataGridView With {.parent = Me, .visible = False}
end region

#Region "SQL Codes"

''' <summary>
Private Sub Search(ByVal table As String, ByVal Fields As String, ByVal where As String)

Dim cnn As OleDbConnection

cnn = New OleDbConnection(CnnStr)
cnn.Open()
Da = New OleDbDataAdapter("Select " & Fields & " from " & table & " Where " & where, cnn)
DS.Clear()
Da.Fill(DS, table)
DG.DataSource = DS.Tables(table)

cnn.Close()
'For Each R As DataGridViewRow In DG.Rows
' If R.Cells(0).Value = Nothing Then Exit For
' txId.Text = R.Cells(0).Value
' tx1.Text = R.Cells(1).Value
' tx2.Text = R.Cells(2).Value
' tx3.Text = R.Cells(3).Value
' '...
'Next

End Sub

#End Region

Navid Asadi
شنبه 07 خرداد 1390, 21:53 عصر
اون where رو از دستورتون حذف کنید و از rowfilter کنترل dataview برای جستوجو استفاده کنید

Navid Asadi
شنبه 07 خرداد 1390, 21:54 عصر
در ضمن برای جستوجو داده ها رو دوباره فرا خوانی نکنید...

Hossis
دوشنبه 09 خرداد 1390, 15:12 عصر
اون where رو از دستورتون حذف کنید و از rowfilter کنترل dataview برای جستوجو استفاده کنید
در این صورت باید حجمی برابر 20د مگابایت رو در دیتاگرید لود کنم درحالی که حافظه سیستم این اجازه رو نمی ده
باید راه بهتری باشد چون برخی نرم افزارها رو دیدم که در کمتر از یک ثانیه, در چند گیگ جستجو کرده و نتیجه رو گزارش می دهند