From 1bd73cef1d5f6983d57345ff075f14e95a3afe46 Mon Sep 17 00:00:00 2001 From: JackCarterSmith Date: Tue, 30 May 2017 10:46:28 +0200 Subject: [PATCH] Change code for the connection to SQLite file --- .../AddMachine_ID.vb | 2 +- ISEN-Repair Inventory Manager/Main.vb | 96 ++++++++++++------- 2 files changed, 61 insertions(+), 37 deletions(-) diff --git a/ISEN-Repair Inventory Manager/AddMachine_ID.vb b/ISEN-Repair Inventory Manager/AddMachine_ID.vb index 498f5af..68fcf78 100644 --- a/ISEN-Repair Inventory Manager/AddMachine_ID.vb +++ b/ISEN-Repair Inventory Manager/AddMachine_ID.vb @@ -8,7 +8,7 @@ End Sub Private Sub CheckIDAlreadyUsed(idToCheck As String) - Main.RequestToSQLite("") + 'Main.RequestToSQLite("") End Sub Private Sub NextButton_Click(sender As Object, e As EventArgs) Handles NextButton.Click diff --git a/ISEN-Repair Inventory Manager/Main.vb b/ISEN-Repair Inventory Manager/Main.vb index eecd771..dfa8b70 100644 --- a/ISEN-Repair Inventory Manager/Main.vb +++ b/ISEN-Repair Inventory Manager/Main.vb @@ -1,6 +1,7 @@ Imports System.Data.SQLite Public Class Main Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load + CheckIfFirstRun() ListAllInv() If HWCheck.Checked And OSCheck.Checked And DrvCheck.Checked And ActivateCheck.Checked Then SoftCheck.Enabled = True Else SoftCheck.Enabled = False @@ -15,58 +16,81 @@ Public Class Main If HWCheck.Checked Then OSCheck.Enabled = True Else OSCheck.Enabled = False End Sub - Public Function RequestToSQLite(SQLiteCommand As String) As DataTable - Dim dt As DataTable = Nothing - Dim ds As New DataSet + Private Sub CheckIfFirstRun() + If Not My.Computer.FileSystem.FileExists("db.sqlite") Then + If MsgBox("La base de données SQLite est introuvable ou inaccesible, souhaitez-vous la régénérer ?", 4161, "Base SQLite absente ou inacessible") = 1 Then + RegenerateDB() + Else + Me.Close() + End If + End If + End Sub + + Private Sub RegenerateDB() + Dim genesis_seq As String = " + CREATE TABLE `computers_desc` ( + `id` INTEGER NOT NULL DEFAULT 0000000000 UNIQUE, + `name` TEXT NOT NULL DEFAULT 'ComputerOfDoom', + `etat` INTEGER NOT NULL DEFAULT 0, + `serial` NUMERIC NOT NULL DEFAULT 0, + `comms` TEXT, + `gived` INTEGER NOT NULL DEFAULT 0, + `giveTo` TEXT, + `getBy` NUMERIC NOT NULL DEFAULT 'ISEN' + ); + CREATE TABLE `computers_progress` ( + `id` TEXT NOT NULL DEFAULT 0000000000 UNIQUE, + `hardware_complete` NUMERIC NOT NULL DEFAULT 0, + `os_complete` NUMERIC NOT NULL DEFAULT 0, + `drivers_complete` NUMERIC NOT NULL DEFAULT 0, + `activate_complete` NUMERIC NOT NULL DEFAULT 0, + `soft_complete` NUMERIC NOT NULL DEFAULT 0, + `arch` INTEGER NOT NULL DEFAULT 1, + `ram` TEXT NOT NULL DEFAULT '1G', + `os` INTEGER NOT NULL DEFAULT 1 + ); + CREATE TABLE `credits` ( + `pseudo` TEXT DEFAULT 'JackCarterSmith' UNIQUE, + `contact` TEXT DEFAULT 'j@bfnt.io' UNIQUE, + `commentaire` TEXT DEFAULT 'Vous m avez trouvé !' UNIQUE + );" Try - StatusLabel.Text = "Récupération des données depuis la base SQLite..." - Using con As New SQLiteConnection("Data Source=db.sqlite") - Using cmd As New SQLiteCommand(SQLiteCommand, con) - con.Open() - Using da As New SQLiteDataAdapter(cmd) - da.Fill(ds) - dt = ds.Tables(0) - End Using - End Using + StatusLabel.Text = "Reconstructions de la base SQLite..." + Using con As New SQLiteConnection("URI=file:db.sqlite") + con.Open() + Dim cmd As New SQLiteCommand(genesis_seq, con) + con.Close() End Using - - Return dt - - StatusLabel.Text = "Récupération avec succés de la base SQLite." + StatusLabel.Text = "La base SQLite a été reconstruite avec succès !" Catch ex As Exception StatusLabel.Text = "Une erreur avec la base SQLite s'est produite !" MsgBox(ex.Message) End Try - - Return Nothing - End Function + End Sub Private Sub ListAllInv() - StatusLabel.Text = "Récupération des données depuis la base SQLite..." - Dim connectStr As String = "Data Source=db.sqlite" - Dim SQLiteCommand As String = "SELECT name FROM computers_desc;" - Dim dt As DataTable = Nothing - Dim ds As New DataSet + Dim dtr As SQLiteDataReader + InvList.ValueMember = "Equippements" + InvList.DisplayMember = "Nom" Try - Using con As New SQLiteConnection(connectStr) - Using cmd As New SQLiteCommand(SQLiteCommand, con) - con.Open() - Using da As New SQLiteDataAdapter(cmd) - da.Fill(ds) - dt = ds.Tables(0) - End Using + StatusLabel.Text = "Récupération des données depuis la base SQLite..." + Using con As New SQLiteConnection("URI=file:db.sqlite") + con.Open() + Using cmd As New SQLiteCommand(con) + cmd.CommandText = "SELECT name FROM computers_desc;" + dtr = cmd.ExecuteReader() + While dtr.Read() + InvList.Items.Add(dtr.GetString(0)) + End While End Using + con.Close() End Using - InvList.ValueMember = "Equippement" - InvList.DisplayMember = "ID" - InvList.DataSource = dt - StatusLabel.Text = "Récupération avec succés de la base SQLite." - Catch ex As Exception + StatusLabel.Text = "Une erreur avec la base SQLite s'est produite !" MsgBox(ex.Message) End Try End Sub