1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
| Imports System.Data.SQLite
Imports System.IO
Module modSQLITE
Public Database As String
Dim CON As New SQLiteConnection
'
Public Sub OpenDataBase()
Try
CON.ConnectionString = My.Settings.Conn
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 |
Partager