Tutorial utilisation sqlite avec visual basic net 2010 express

Soyez le premier à donner votre avis sur cette source.

Vue 21 853 fois - Téléchargée 4 913 fois

Description

Petit tutorial sur l'utilisation de SQLITE avec VB.net 2010 Express. Le tutorial utilise comme exemple une petit base de données rudimentaire. Il montre comment parametrer votre programme, creer une base SQLite et les fonctions courantes . Add,Modify,Get et Delete. Le tutorial est contenu dans un fichier pdf contenu dans le ZIP

Source / Exemple :


Imports System.Data.SQLite
Imports System.IO
Module modSQLITE
    Public Database As String
    Dim CON As New SQLiteConnection
    '
    Public Sub OpenDataBase()
        Try
            CON.ConnectionString = "Data Source=" & DataBase
            CON.Open()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
    '
    Public Sub CloseDatabase()
        CON.Close()
    End Sub
    Public Structure m_INDIVIDU
        Dim ID As Integer
        Dim Nom As String
        Dim Age As Integer
        Dim Membre As Boolean
        Dim Photo As Image
        Public Sub New(ByVal Idx As Integer)
            ID = Idx
            Nom = ""
            Age = 0
            Membre = False
            Photo = New Bitmap(10, 10) 'on initialise avec une image quelconque
        End Sub
    End Structure
    Public Sub DBaddINDIVIDU(ByVal INDIVIDU As m_INDIVIDU)
        Try
            Dim strSQL As String = "INSERT INTO INDIVIDU VALUES (@ID,@Nom,@Age,@Membre,@Photo)"
            Dim cmd = New SQLiteCommand(strSQL, CON)
            cmd.Parameters.AddWithValue("@ID", INDIVIDU.ID)
            cmd.Parameters.AddWithValue("@Nom", INDIVIDU.Nom)
            cmd.Parameters.AddWithValue("@Age", INDIVIDU.Age)
            cmd.Parameters.AddWithValue("@Membre", INDIVIDU.Membre)
            cmd.Parameters.AddWithValue("@Photo", ImageToByteArray(INDIVIDU.Photo))
            cmd.ExecuteNonQuery()
            cmd.Dispose()
        Catch ex As Exception
            MessageBox.Show(ex.message)
        End Try
    End Sub

    Public Sub DBupdateINDIVIDU(ByVal INDIVIDU As m_INDIVIDU)
        Try
            Dim strSQL As String = "UPDATE INDIVIDU SET Nom=@Nom,Age=@Age,Membre=@Membre,Photo=@Photo WHERE ID=@ID"
            Dim cmd = New SQLiteCommand(strSQL, CON)
            cmd.Parameters.AddWithValue("@ID", INDIVIDU.ID)
            cmd.Parameters.AddWithValue("@Nom", INDIVIDU.Nom)
            cmd.Parameters.AddWithValue("@Age", INDIVIDU.Age)
            cmd.Parameters.AddWithValue("@Membre", INDIVIDU.Membre)
            cmd.Parameters.AddWithValue("@Photo", ImageToByteArray(INDIVIDU.Photo))
            cmd.ExecuteNonQuery()
            cmd.Dispose()
        Catch ex As Exception
            MessageBox.Show(ex.message)
        End Try
    End Sub

    Public Function DBgetINDIVIDU(ByVal Idx As Integer) As m_INDIVIDU
        Dim strSQL As String = "SELECT * FROM INDIVIDU WHERE ID= " & idx
        Dim INDIVIDU As New m_INDIVIDU
        Dim cmd = New SQLiteCommand(strSQL, CON)
        Dim DR As SQLiteDataReader = cmd.ExecuteReader
        '
        While (DR.Read())
            INDIVIDU.ID = DR(0)
            INDIVIDU.Nom = DR(1)
            INDIVIDU.Age = DR(2)
            INDIVIDU.Membre = DR(3)
            INDIVIDU.Photo = ByteArrayToImage(DR(4))
        End While
        DR.Close()
        cmd.Dispose()
        Return INDIVIDU
    End Function

    Public Sub DBdeleteINDIVIDU(ByVal Idx As Integer)
        Dim strSQL As String = "DELETE FROM INDIVIDU WHERE ID= " & idx
        Dim cmd = New SQLiteCommand(strSQL, CON)
        cmd.ExecuteNonQuery()
        cmd.Dispose()
    End Sub

    Public Function DBNewIndexINDIVIDU() As Integer
        Dim NewID As Integer = 1
        Dim cmd = New SQLITECommand("SELECT MAX(ID) FROM INDIVIDU", CON)
        Try
            Dim DR As SQliteDataReader = cmd.ExecuteReader
            While (DR.Read())
                NewID = DR(0)
            End While
            DR.Close()
            Return NewID + 1
        Catch ex As Exception
            Return NewID
        End Try
    End Function

    Public Sub DBremplirListe(ByRef LST As ListBox) 'remarquez le ByRef
        Dim cmd = New SQLiteCommand("SELECT ID,Nom FROM INDIVIDU", CON)
        Dim DR As SQLiteDataReader = cmd.ExecuteReader
        LST.Items.Clear()
        While (DR.Read())
            'DR(1) est le nom DR(0) est ID
            LST.Items.Add(DR(1) & "    |" & DR(0))
        End While
        DR.Close()
    End Sub
    '------------
    Public Function ImageToByteArray(ByVal img As Image) As Byte()
        Dim stream As New MemoryStream
        img.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg)
        Return stream.ToArray
    End Function

    Public Function ByteArrayToImage(ByVal ByteArray As Byte()) As Image
        Dim stream As New MemoryStream(ByteArray, 0, ByteArray.Length)
        Return Image.FromStream(stream, True)
    End Function
End Module

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
56
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
4 mai 2020
1
Bonsoir,
OK ... je le fais derechef
Merci
Jean-paul
Messages postés
56
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
4 mai 2020
1
Bonjour et merci pour ce super tuto.

Tous mes Queries vb-net-sqlite fonctionnent parfaitement SAUF la commande REGEXP qui n'est pas reconnue comme fonction (à noter que cette formulation fonctionne parfaitement lorsque je suis dans mon logiciel manager : "DB Browser for SQLite")

Extrait de Code :
.../....
Imports System.Data.SQLite
Module ModuleSQLite ' pour définition de la connexion, des commandes, etc...
.... /....
' mon SELECT dans ma FORM :
OpenDataBase()
sqlite_cmd.commandtext = " SELECT * FROM Livres WHERE titre REGEXP '[^ ]\?' " ' ne marche pas via VB NET
sqlite_cmd.ExecuteNonQuery()
sqlite_cmd.Dispose()
sqlite_conn.Close()

Je reçois :
System.Data.SQLite.SQLiteException : 'SQL logic error or missing database
no such function: REGEXP'

Vois-tu une explication, me manque-t-il un bout de code, un patch à ma DLL ??
Grand merci

Jean-paul
Messages postés
28651
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
8 mai 2020
327 >
Messages postés
56
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
4 mai 2020

Bonjour,
L'auteur de cette source (qui date de 2012) ne s'est pas reconnecté au site depuis 2005... pas sûr qu'il vienne te répondre.
Si tu as une question... pose là directement sur le forum.

NB: Pour poster ton code, merci d'utiliser les balises de code : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Messages postés
5
Date d'inscription
mardi 28 avril 2015
Statut
Membre
Dernière intervention
29 mars 2018

Bonsoir merci pour votre réponse mais mon problème réside au niveau de l'impression. tout fonctionne correctement mais je ne voit le Data SQLite dans la source de donné pour effectuer ne connection avec le reaportview
Afficher les 11 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.