est-il possible de compacter la base de données Msaccess en utilisant C# si si laissez-moi savoir le chemin?comment compacter la base de données Msaccess en utilisant C#
1
A
Répondre
4
Vous pouvez essayer quelque chose comme ça
public static void CompactAndRepair(string accessFile, Microsoft.Office.Interop.Access.Application app)
{
string tempFile = Path.Combine(Path.GetDirectoryName(accessFile),
Path.GetRandomFileName() + Path.GetExtension(accessFile));
app.CompactRepair(accessFile, tempFile, false);
app.Visible = false;
FileInfo temp = new FileInfo(tempFile);
temp.CopyTo(accessFile, true);
temp.Delete();
}
Voir aussi Use the CompactRepair method of the Application object to compact and repair the database
4
...
//invoke a CompactDatabase method of a JRO object
//pass Parameters array
objJRO.GetType().InvokeMember("CompactDatabase",
System.Reflection.BindingFlags.InvokeMethod,
null,
objJRO,
oParams);
...
Voir plus de détails à http://www.codeproject.com/KB/database/mdbcompact_latebind.aspx
1
i utilisé l'article à:
Compact and Repair an Access Database Programmatically Using C#
je l'ai modifié un peu pour le rendre plus simple à utiliser:
public static bool CompactAndRepairAccessDB(string source, string destination)
{
try
{
JetEngine engine = (JetEngine)HttpContext.Current.Server.CreateObject("JRO.JetEngine");
engine.CompactDatabase(string.Format("Data Source={0};Provider=Microsoft.Jet.OLEDB.4.0;", source),
string.Format("Data Source={0};Provider=Microsoft.Jet.OLEDB.4.0;", destination));
File.Copy(destination, source, true);
File.Delete(destination);
return true;
}
catch
{
return false;
}
}
Ne pas oublier:
Clic droit de référence dans la solution Explorer -> Ajouter Référence -> COM -> recherche 'jet' -> Ajouter « Microsoft Jet et les objets de réplication ... »
et aussi ajouter:
using System.IO;
using JRO;
Questions connexes
- 1. Exemple de requête where cluase incluant la connexion de base de données MSACCESS en C#
- 2. pouvons-nous lister toutes les tables dans la base de données msaccess en utilisant sql?
- 3. Sql Compacter vers une autre base de données
- 4. Comment faire pour convertir/exporter la base de données SQL Server à MSAccess de C#
- 5. Insertion d'un enregistrement dans la base de données Msaccess
- 6. Quand compacter une base de données Sql Server?
- 7. Excel importer à la base de données en utilisant C#
- 8. MSAccess base de données avec Basic - accès aux champs
- 9. Comment pouvons-nous compacter une base de données d'accès dans VB.NET ou C# .NET sans utiliser DAO et JRO
- 10. convertir une base de données MSAccess à une base de données SQL Server
- 11. Comment écrire des données dans la base de données efficacement en utilisant C#?
- 12. comment connecter la base de données CouchDB en utilisant javascript
- 13. Extraire les données de la base de données CardScan en utilisant C#
- 14. comment établir la connexion à la base de données en utilisant WPF, C# et XAML
- 15. Création d'une base de données à distance en utilisant C#
- 16. Comment exporter/télécharger une table à partir de la base de données mysql en utilisant C#?
- 17. Contenu de la base de données Stockage en C# contrôle
- 18. multithread de données de base en utilisant
- 19. Comment stocker wxImage dans la base de données, en utilisant C++?
- 20. comment télécharger les fichiers txt à la base de données SQL en utilisant asp.net (C#)
- 21. Comment enregistrer l'image dans la base de données en utilisant C#
- 22. comment mettre à jour la base de données sur une base hebdomadaire, en utilisant PHP/MySQL?
- 23. À quelle fréquence devez-vous compacter une base de données SQL CE?
- 24. zend navigation en utilisant la base de données
- 25. Connectivité de la base de données C++?
- 26. Afficher l'image de la base de données en utilisant ajax
- 27. Pré-remplir la base de données SQLite avec des données de base en utilisant Django
- 28. Comment synchroniser/vérifier les données de la base de données à datatable en C#?
- 29. base de données SQL en utilisant PHP
- 30. Migration de base de données en C#
Je me demande si l'ajout d'une référence à Microsoft.Office.Interop.Access.Application à votre application pourrait lier une version spécifique du bureau. La solution Code Project ci-dessous utilisera la liaison dynamique pour éviter cela. –