Программирую на VB.NET. среди всевозможных плюсов, которые предлагает современная среда разработки, существует существенный минус, а именно - быстродействие! Проект, написанный на VB6 работает на порядок быстрее, а то и больше. К примеру, грид из 40 000 строк раньше заполнялся менее чем за секунду. А в VB 2008 грид заполняется ровно в 10 раз медленнее.
Ниже приведен код, заполняющий грид C1TrueDBGrid1.
Объясните, уважаемые форумчане, я не правильно заполняю грид, или проект, написанный на .NET действительно работает медленнее?
Может нужно настройки компиляции проекта как либо изменить, и тогда будет счастье?
Ведь не может проект, написанный по новой технологии работать медленее, чем по старой?
Прошу прощения, если затронул избитую тему.
- Код: Выделить всё
Dim ConStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Sergey\Documents\Visual Studio 2008\Projects\Склад\BD\Sklad.mdb"
Dim Con As New System.Data.OleDb.OleDbConnection
Con.ConnectionString = ConStr
Con.Open()
ConStr = Con.ConnectionString
Dim v As String = "Select * From vw_Personal"
Dim ExecuteQuery As System.Data.Common.DbDataReader
Dim Provider As System.Data.Common.DbProviderFactory
Provider = System.Data.Common.DbProviderFactories.GetFactory("System.Data.OleDb")
Using Command As System.Data.Common.DbCommand = Provider.CreateCommand()
Command.Connection = Con
Command.CommandText = v
ExecuteQuery = Command.ExecuteReader()
End Using
Dim Reader As System.Data.OleDb.OleDbDataReader = ExecuteQuery
Dim grid As C1.Win.C1TrueDBGrid.C1TrueDBGrid = C1TrueDBGrid1
Dim tbl As New DataTable("Table")
'Задержка здесь
tbl.Load(Reader)
Dim ds As New DataSet
ds.Tables.Add(tbl)
'Заполняем грид
grid.DataSource = Nothing
grid.DataMember = tbl.TableName
grid.DataSource = ds
'Очистка "SqlReader"
Reader.Close()
Reader = Nothing
'Очистка "tbl"
tbl = Nothing
grid.visible = True