Bonjour,
Pour afficher une base de 6000 enregistrements ayant 12 champs il me faut environ entre 5 et 10 secondes avec un dual core 4800.
Existe-t'il une solution pour ouvrir cette base plu rapidemant ? En code uniquement Vb.net 2005
Voici ma source....
Dim i As Integer
'Creation d'une connection
Dim CM1 As ADODB.Connection
'Recorset
Dim RST As ADODB.Recordset
CM1 = New ADODB.Connection
RST = New ADODB.Recordset
Din NOM_BASE as String = "c:\toto.mdb"
CM1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & NOM_BASE
CM1.Open()
'Liste les tables ds le menu M_TABLE_LISTE
Dim db As New OleDb.OleDbConnection
Dim schemaTable As DataTable
db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & NOM_BASE
db.Open()
schemaTable = db.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, _
New Object() {Nothing, Nothing, Nothing, "TABLE"})
Me.M_TABLE_LISTE.Items.Clear()
For i = 0 To schemaTable.Rows.Count - 1
Me.M_TABLE_LISTE.Items.Add(schemaTable.Rows(i)!TABLE_NAME.ToString)
Next i
If Me.M_TABLE_LISTE.Items.Count > 0 Then
Me.M_TABLE_LISTE.Text = Me.M_TABLE_LISTE.Items.Item(0).ToString
Else
db.Close()
db = Nothing
Exit Sub
End If
Dim Memoire As New DataSet() 'creation du dataset
'Dim Base As String = Provider & NOM_BASE & Suite_Provider
Try
'declaration de la connection
liaison = New OleDb.OleDbDataAdapter(SQLA_BASE, db)
'charge la table en mémoire
liaison.Fill(Memoire, Me.M_TABLE_LISTE.Text)
VUE_Principale = New DataView(Memoire.Tables(Me.M_TABLE_LISTE.Text))
' --- GRILLE =DatagridView ----
Me.GRILLE.DataSource = VUE_Principale
Catch ex As Exception
MessageBox.Show("Erreur à l'ouverture de la base")
End Try
Memoire = Nothing
i = Nothing
db.Close()
db = Nothing
schemaTable = Nothing
Merci de votre aide.
@+