2010-05-03 11 views
3

Je développe une application win en C# qui communique avec un service WCF. Je veux enregistrer les exceptions qui sont lancées sur le client à consigner dans la base de données Sql Lite (l'application Win utilise la base de données Sql Lite pour stocker les données localement). Et plus tard, il devrait être envoyé au service wcf lorsque cela est nécessaire afin qu'il puisse être utile pour l'amélioration du support/analyse/application.Enregistrement des erreurs dans la base de données SQLite à partir de l'application C# Windows Forms

Je veux une méthode qui peut être appelée directement dans chaque bloc catch simplement par LogHelper.Log(ex).

Je voudrais savoir si quelqu'un l'a fait à travers la bibliothèque de l'entreprise ou utilisé des bonnes pratiques pour une telle situation?

Mise à jour Je suis déjà en utilisant la base de données SQL Lite pour stocker des données localement par la bibliothèque System.Data.SqLite

Répondre

2

J'ai écrit un certain nombre de billets de blog à ce sujet récemment. Je suis sûr que l'un ou l'autre fournirai la réponse que vous avez besoin:

+0

Désolé, je n'ai pas vu que vous regardiez EL. Mes publications traitent ce défi spécifiquement avec NLog. Moi aussi j'utilise EL quand les clients le demandent - jamais avec SQLite. Si vous avez le choix, je vous recommande de regarder NLog. –

+0

Merci Thomas, je suis à la recherche. Il semble que je peux l'utiliser. – IsmailS

+0

Cela aurait été génial si vous pouviez poster le code source sur votre blog. Le code source est toujours utile. Savez-vous que les développeurs lisent et comprennent le code plus vite que l'anglais? :RÉ – IsmailS

0

Vous ne pouvez pas utiliser directement la bibliothèque Microsoft d'entreprise avec la base de données SQLite comme backend. Utilisez la bibliothèque System.Data.SQLite pour toutes les opérations de base de données.

Si vous souhaitez toujours utiliser la bibliothèque d'entreprise, cochez cette case article. Quoi qu'il en soit, vous devrez installer la bibliothèque System.Data.SQLite. Selon mon expérience System.Data.SQLite sera suffisant pour toutes les opérations de base de données. Encore un mot de prudence, sqlite ne supporte pas la simultanéité. Par conséquent, toute opération de base de données verrouille la totalité de la base de données pour la durée.

+1

Je suis déjà en utilisant la base de données SQL Lite pour stocker des données localement via la bibliothèque System.Data.SqLite. – IsmailS

-1

ajouter une référence à votre projet System.data.sqlite que l'espace de noms d'appel pour sqlite db connexion après avoir écrit le codage de journalisation de base. Appliquer cela va certainement fonctionner