Aller directement au contenu
  • Catégories
  • Récent
  • Mots-clés
  • Populaire
  • Web
  • Utilisateurs
  • Groupes
Habillages
  • Clair
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Sombre
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Défaut (Aucun habillage)
  • Aucun habillage
Réduire
Melinyel

Melinyel

  1. Accueil
  2. Programmation
  3. Développement de logiciels
  4. C#
  5. [Tutoriel] Commencer à utiliser SQLite avec C#

[Tutoriel] Commencer à utiliser SQLite avec C#

Planifié Épinglé Verrouillé Déplacé C#
14 Messages 5 Publieurs 21.9k Vues
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • vfrzV Hors-ligne
    vfrzV Hors-ligne
    vfrz
    a écrit sur dernière édition par
    #1

    Bonjour, bonsoir !
     
    Aujourd'hui nous allons apprendre à utiliser SQLite en C#, pour cela je divise le tutoriel en trois grandes parties :
     
    I • SQLite, c'est quoi ?
    II • Pour quelles utilisations ?
    III • Utiliser SQLite
     
    I • SQLite, c'est quoi ?
     
    SQLite est une bibliothèque écrite en C qui propose un moteur de base de données relationnelle accessible par le langage SQL. SQLite implémente en grande partie le standard SQL-92 et des propriétés ACID.
     
    Contrairement aux serveurs de bases de données traditionnels, comme MySQL ou PostgreSQL, sa particularité est de ne pas reproduire le schéma habituel client-serveur mais d'être directement intégrée aux programmes. L'intégralité de la base de données (déclarations, tables, index et données) est stockée dans un fichier indépendant de la plateforme.
     
    D. Richard Hipp, le créateur de SQLite, a choisi de mettre cette bibliothèque ainsi que son code source dans le domaine public, ce qui permet son utilisation sans restriction aussi bien dans les projets open source que dans les projets propriétaires. Le créateur ainsi qu'une partie des développeurs principaux de SQLite sont employés par la société américaine Hwaci.
     
     
    SQLite est le moteur de base de données le plus distribué au monde, grâce à son utilisation dans de nombreux logiciels grand public comme Firefox, Skype, Google Gears, dans certains produits d'Apple, d'Adobe et de McAfee et dans les bibliothèques standards de nombreux langages comme PHP ou Python. De par son extrême légèreté (moins de 300 Kio), il est également très populaire sur les systèmes embarqués, notamment sur la plupart des smartphones modernes : l'iPhone ainsi que les systèmes d'exploitation mobiles Symbian et Android l'utilisent comme base de données embarquée. Au total, on peut dénombrer plus d'un milliard de copies connues et déclarées de la bibliothèque.
     
    (Source : Wikipedia)
     
    Nous allons aujourd'hui nous intéresser au wrapper .Net de SQLite.
     
     
    II • Pour quels utilisations ?
     
    Comme dit plus haut, SQLite permet d'accéder à une base de données uniquement en local, depuis un fichier, ce qui limite donc les utilisations. Vous pourrez utiliser cette librairie donc pour des projets locaux comme par exemple gérer un système de compte sur une seule machine, stocker des résultats de calculs ou encore stocker des scores pour un jeu solo... Cependant utiliser SQLite pour des jeux ou applications diverses en ligne n'est pas possible directement, il va falloir passer par un serveur.
     
    Des connaissances sur le SQL sont fortement recommandées, si vous n'y connaissez rien, allez lire le tutoriel sur OpenClassRoom ou sur n'importe quel autre site.
     
    III • Utiliser SQLite
     
    Importer la librairie
     
    Premièrement il va vous falloir la librairie, télécharger là ici : System.Data.SQLite.dll
     
    Une fois votre projet crée sous Visual Studio, importer cette librairie à votre celui-ci, pour cela, clic droit sur le projet puis "Importer une référence".
    Pour finir l'importation ajoutez ceci au début de la classe où vous voulez utiliser SQLite :

    using System.Data.SQLite;
    

    Créer un fichier de base de données
     
    Chaque base de données aura son propre fichier, pour créer un fichier de base de données, nous allons utiliser la méthode statique CreateFile contenue dans la classe SQLiteConnection :

    SQLiteConnection.CreateFile("MaBaseDeDonnees.sqlite");
    

    J'utilise ici l'extention .sqlite, mais vous pouvez mettre ce que vous voulez ! (.db, .blabla)
     
    Connexion à la base de données
     
    Avant de pouvoir utiliser cette base de données, il va falloir se connecter à celle-ci, pour cela nous allons déclarer une nouvelle SQLiteConnection :

    SQLiteConnection maConnexion;
    

    Puis l'instancier et ouvrir la connexion :

    maConnexion= new SQLiteConnection("Data Source=MaBaseDeDonnees.sqlite;Version=3;");
    maConnexion.Open();
    

    Pour fermer la connexion :

    MaBaseDeDonnees.Close();
    

    N'oubliez pas de la fermer une fois que vous n'en avez plus besoin 😉

    Créer une table

    Désormais nous allons utiliser le SQL, nous allons créer une table qui contiendra les meilleurs scores pour un jeu, donc un nom de type "text" et un score de type "int" :

    string sql = "create table meilleursscores (nom text, score int)";
    

    Nous devons créer un objet de type SQLiteCommand pour pouvoir l'éxécuter :

    SQLiteCommand commande = new SQLiteCommand(sql, maConnexion);
    

    Puis nous allons éxecuter cette commande :

    command.ExecuteNonQuery();
    

    Remplir la table

    Nous allons maintenant remplir cette table comme ceci :

    string sql = "insert into meilleursscores (nom, score) values ('VFRZ', 100)";
    SQLiteCommand commande = new SQLiteCommand(sql, maConnexion);
    commande.ExecuteNonQuery();
    

    Lire les meilleurs scores depuis la table

    Pour lire la table c'est un peu différent que pour la remplir ou la créer.

    Premièrement, la commande select :

    string sql = "select * from meilleursscores order by score desc";
    SQLiteCommand commande = new SQLiteCommand(sql, maConnexion);
    

    Puis il va falloir utiliser un SQLiteDataReader pour utiliser cette commande :

    SQLiteDataReader reader = command.ExecuteReader();
    while (reader.Read())
           Console.WriteLine("Nom: " + reader["nom"] + "\tScore: " + reader["score"]);
    

    J'espère que ce tutoriel vous a été utile !

    N'hésitez pas à poser des questions.

    VFRZ

    hbY2yJ9.gif7CNtQh6.gif

    1 réponse Dernière réponse
    4
    • SoulalexS Hors-ligne
      SoulalexS Hors-ligne
      Soulalex
      a écrit sur dernière édition par
      #2

      Merci pour ce tutoriel d'une grande qualité 🙂

      Je ne me suis jamais intéressé au C# mais qu'est ce qu'on peut faire exactement avec ?

      Soulalex, Administrateur de Melinyel
      + E-Mail : [[email protected]](mailto:[email protected] "Lien vers un courriel")
      + GitHub : [https://github.com/Soualex](https://github.com/Soualex "Lien externe")

      1 réponse Dernière réponse
      0
      • vfrzV Hors-ligne
        vfrzV Hors-ligne
        vfrz
        a écrit sur dernière édition par
        #3

        Plein de choses ! Des applications consoles, des logiciels divers, des applications Windows Phone voir Android. Des jeux avec Unity ou encore xna. Pour moi c'est un très bon langage, seul petit défaut c'est que de base, il est uniquement compatible sur Windows, même si aujourd'hui grâce à Mono on peut faire du c# pour Mac, Linux...

        hbY2yJ9.gif7CNtQh6.gif

        1 réponse Dernière réponse
        0
        • PirkoaP Hors-ligne
          PirkoaP Hors-ligne
          Pirkoa
          a écrit sur dernière édition par
          #4

          Merci pour ce jooli tuto ! 😄

          C#, c'est le bien 🙂

          Étudiant en 2ème année de DUT Informatique

          Jetez un coup d’œil à mon CV !

          signature.jpg

          1 réponse Dernière réponse
          0
          • SoulalexS Hors-ligne
            SoulalexS Hors-ligne
            Soulalex
            a écrit sur dernière édition par
            #5

            C'est un langage haut niveau, c'est plus facile que le C/C++ ? Il faudrait que je m'y intéresse car ça à l'air d'etre quelque chose que je pourrais maitriser ^^

            Soulalex, Administrateur de Melinyel
            + E-Mail : [[email protected]](mailto:[email protected] "Lien vers un courriel")
            + GitHub : [https://github.com/Soualex](https://github.com/Soualex "Lien externe")

            1 réponse Dernière réponse
            0
            • PirkoaP Hors-ligne
              PirkoaP Hors-ligne
              Pirkoa
              a écrit sur dernière édition par
              #6

              Si j'ai le temps, je ferai une présentation générale du langage C# dans la journée ou demain pour les novices 😉

              Étudiant en 2ème année de DUT Informatique

              Jetez un coup d’œil à mon CV !

              signature.jpg

              1 réponse Dernière réponse
              0
              • vfrzV Hors-ligne
                vfrzV Hors-ligne
                vfrz
                a écrit sur dernière édition par
                #7

                C'est un langage haut niveau, c'est plus facile que le C/C++ ? Il faudrait que je m'y intéresse car ça à l'air d'etre quelque chose que je pourrais maitriser ^^

                Oui c'est plus simple, le c# ressemble beaucoup au Java, mais personnellement je le trouve mieux que le java pour plusieurs raisons: les threads, la création de Gui/Windows, le réseau... Je ferais un post aussi avec quelques guides et tutoriels 😉

                hbY2yJ9.gif7CNtQh6.gif

                1 réponse Dernière réponse
                0
                • AkimaceA Hors-ligne
                  AkimaceA Hors-ligne
                  Akimace
                  Modérateur spécialisé
                  a écrit sur dernière édition par
                  #8

                  Merci pour ce tuto  🙂

                  1395597174-akimace.png

                  Me contacter : [email protected]

                  Ma chaîne Youtube : www.youtube.com/c/Akimace

                  1 réponse Dernière réponse
                  0
                  • N Hors-ligne
                    N Hors-ligne
                    neconu
                    a écrit sur dernière édition par
                    #9

                    Bonjour,

                    Je suis débutant en C# et je cherche quelques renseignements sur ce code trouvé sur le web :

                    namespace SQLiteSamples
                    {
                        class Program
                        {
                            // Maintient la connexion
                            SQLiteConnection m_dbConnection;
                    
                            static void Main(string[] args)
                            {
                                Program p = new Program();
                            }
                    
                            public Program()
                            {
                                connectToDatabase();
                                printConsole();
                            }
                    
                            // Creates a connection with our database file.
                            void connectToDatabase()
                            {
                                m_dbConnection = new SQLiteConnection("Data Source=login.sqlite;Version=3;");
                                m_dbConnection.Open();
                            }
                    
                            // Affiche les noms et login dans la console
                            void printConsole()
                            {
                                string sql = "select * from MYDATA order by Nom desc";
                                SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
                                SQLiteDataReader reader = command.ExecuteReader();
                                while (reader.Read())
                                    Console.WriteLine("Nom: " + reader["Nom"] + " Login: " + reader["Login"]);
                                Console.ReadLine();
                            }
                        }
                    }
                    

                    Je n'arrive pas à l'adapter dans une window form pour qu'il s'affiche dans une list box.

                    Merci pour votre aide.

                    Cordialement.

                    1 réponse Dernière réponse
                    0
                    • N Hors-ligne
                      N Hors-ligne
                      neconu
                      a écrit sur dernière édition par
                      #10

                      Personne ?

                      1 réponse Dernière réponse
                      0
                      • vfrzV Hors-ligne
                        vfrzV Hors-ligne
                        vfrz
                        a écrit sur dernière édition par
                        #11

                        Salut,

                        désolé pour le délai de réponse je suis beaucoup occupé en ce moment.

                        Que veux tu dire que tu n'arrives pas à "l'adpter" ? Tu ne sais pas ajouter des éléments dans une listbox ?

                        Si c'est le cas tu as juste à faire ceci :

                        listbox.Items.Add("Hello world");
                        

                        Sinon décris ton problème plus précisement 😉

                        hbY2yJ9.gif7CNtQh6.gif

                        1 réponse Dernière réponse
                        0
                        • N Hors-ligne
                          N Hors-ligne
                          neconu
                          a écrit sur dernière édition par
                          #12

                          Bonsoir et merci de m'accorder du temps.

                          Je voudrais adapter ce code pour faire afficher le contenu de la bdd dans un listbox.

                          Et ça je ne trouve pas comment faire....

                          En mode console le code fonctionne bien, mais pas dans une windows form.

                          Cordialement.

                          1 réponse Dernière réponse
                          0
                          • vfrzV Hors-ligne
                            vfrzV Hors-ligne
                            vfrz
                            a écrit sur dernière édition par
                            #13

                            Désolé si je me trompe mais tu donnes réellement l'impression que tu ne comprends même pas le code que tu as donné...

                            Bon en gros, tu fais exactement la même chose que dans ce code sauf qu'au lieu d'afficher les éléments avec "Console.WriteLine", tu les ajoutes à la textbox comme dit dans mon message précédent.

                            Ps : Si tu débutes en C# ne cherche pas à faire des choses comme ca si tu ne comprends pas, commence par lire des guides (livres, vidéos, openclassrooms).

                            hbY2yJ9.gif7CNtQh6.gif

                            1 réponse Dernière réponse
                            0
                            • N Hors-ligne
                              N Hors-ligne
                              neconu
                              a écrit sur dernière édition par
                              #14

                              Ok je vais aller voir sur openclassroom.

                              Merci quand même.

                              1 réponse Dernière réponse
                              0

                              Bonjour ! Vous semblez intéressé par cette conversation, mais vous n’avez pas encore de compte.

                              Marre de refaire défiler les mêmes messages ? Créez un compte pour retrouver votre position, recevoir des notifications des nouvelles réponses, sauvegarder vos favoris et voter pour les messages que vous appréciez.

                              Grâce à votre participation, ce message peut devenir encore meilleur 💗

                              S'inscrire Se connecter
                              Répondre
                              • Répondre à l'aide d'un nouveau sujet
                              Se connecter pour répondre
                              • Du plus ancien au plus récent
                              • Du plus récent au plus ancien
                              • Les plus votés


                              • Se connecter

                              • Connectez-vous ou inscrivez-vous pour faire une recherche.
                              Powered by NodeBB Contributors
                              • Premier message
                                Dernier message
                              0
                              • Catégories
                              • Récent
                              • Mots-clés
                              • Populaire
                              • Web
                              • Utilisateurs
                              • Groupes