Giorno a tutti, in questo piccolo tutorial vedremo come creare una connessione a MySql in visual basic, alla fine inoltre vedremo come sarà possibile creare una piccola rubrica per numeri telefonici. La prima cosa da fare è scaricarsi mysql dal sito ufficiale, per questa guida scaricheremo mysql in formato zip (link qui). Un altra cosa di cui abbiamo bisogno è il connettore per .Net, senza questo connettore infatti non saranno installati i driver per la connessione a MySql. Il connettore lo possiamo trovare qui. In ultimo vi consiglio di scaricarvi HeidiSql che è un client open source creato da sviluppatori tedeschi che permette di visualizzare il database, crearne nuovi ed amministrare dati e tabelle, da precisare che lo useremo in questa guida per creare le tabelle e il database 🙂 . Adesso che abbiamo finito la lista dei file da scaricare possiamo iniziare.
Visto che il database l’ abbiamo scaricato sotto formato zip il servizio lo dovremo avviare manualmente. Estraete il file zip in una directory conosciuta, adesso creiamo un file di testo e incolliamoci questo codice dentro:
@echo off cd bin mysqld.exe |
e salviamo il file con estenzione .bat nella cartella contenente tutti i file di MySql: Screen.
Doppio click su quel file e si aprirà una finestra DOS, probabilmente in xp se avete attivato il firewall vi chiedera se sbloccare o meno questo processo, clicchiamo su sblocca e il server mysql si avvierà.
Impostazione del database e creazione Tabelle.
Adesso apriamo HeidiSQL e facciamo click sul bottone new, diamo un nome alla connessione es: provaprova. Adesso sempre dalla schermata principale di heidisql modifichiamo l’ ip “127.0.0.1” nel campo hostname/ip. Siccome heidisql mette automaticamente il nome root nel campo username non dobbiamo modificare questo campo. Adesso clicchiamo su save e i nostri parametri saranno salvati: Screen. Adesso nella schermata che si è aperta dobbiamo aggiungere un database e qualche tabella, vediamo come fare:
1. Tasto destro su root@127.0.0.1/ create new > Database;
2. Inseriamo il nome provaguida nel campo name e clicchiamo su OK.
Appena clicchiamo OK nella colonna di sinistra verrà automaticamente selezionato il database da noi creato. Adesso dobbiamo creare le tabelle, si fa così:
1. Clicchiamo sul nostro database e andiamo nel campo query
2. Inseriamo questo codice (da ora in poi lo chiameremo query) e premiamo il tasto F9 (Attenzione! il testo deve stare in una sola riga!):
CREATE TABLE `rubrica` ( `Nome` TEXT NOT NULL, `Cognome` TEXT NOT NULL, `Numero di telefono` TEXT NOT NULL ); |
Spieghiamo un po cosa fa questa query: Crea una tabella di nome rubrica con campi (‘nome‘ come testo non vuoto, ‘cognome’ come testo non vuoto, ‘numero di telefono‘ come testo non vuoto.
Passiamo finalmente al Visual Basic!
In questo secondo capitolo della guida creeremo una rubrica telefonica che salverà i nostri numeri di telefono nel database.
Creiamo un nuovo progetto e chiamiamolo Rubrica Mysql. Nel form principale inseriamo i seguenti elementi:
3 label
3 textbox
2 button
1 datagridview
e cerchiamo di disporli come è possibile vedere in questo Screen
Prima di
Public Class Form1 |
Inserite questa riga:
Imports System.Data.Odbc |
Adesso fate doppio click sul bottone inserisci e aggiungete dentro il seguente codice:
Try
Dim ipdatabase As String = “127.0.0.1” ‘ indirizzo ip database Dim pswdatabase As String = “” ‘ password database Dim iddatabase As String = “root” ‘ username database Dim nomedatabase As String = “provaguida” ‘ nome database Dim connectionString = “DRIVER={MySQL ODBC 3.51 Driver};SERVER=” & ipdatabase & “;DATABASE=” & nomedatabase & “;UID=” & iddatabase & “;PASSWORD=” & pswdatabase & “;OPTION=3” Dim conn As New OdbcConnection(connectionString) Dim nonqueryCommand As OdbcCommand = conn.CreateCommand() conn.Open() nonqueryCommand.CommandText = “INSERT INTO `rubrica` (`Nome`, `Cognome`, `Numero di telefono`) VALUES (‘” & TextBox1.Text & “‘, ‘” & TextBox2.Text & “‘, ‘” & TextBox3.Text & “‘);” nonqueryCommand.ExecuteNonQuery() MsgBox(“Contatto inserito”) Catch errore_di_connessione As Odbc.OdbcException MsgBox(“Non sono riuscito a connettermi perchè: ” + errore_di_connessione.Message) Finally End Try |
Eseguiamo il codice ed inseriamo dei valori a caso per fare una prova:
Ed ecco il risultato visualizzato in HeidiSQL:
Bene, adesso che abbiamo creato la funzione per inserire i dati, vediamo la lettura e la visualizzazione in un Datagridview. Creiamo una nuova sub “chiamata ricavanumeri”
Private Sub ricavanumeri()
End Sub |
Dentro questa nuova sub inseriamo il seguente codice:
Try
Dim ipdatabase As String = “127.0.0.1” ‘ indirizzo ip database Dim pswdatabase As String = “” ‘ password database Dim iddatabase As String = “root” ‘ username database Dim nomedatabase As String = “provaguida” ‘ nome database Dim cnString = “DRIVER={MySQL ODBC 3.51 Driver};SERVER=” & ipdatabase & “;DATABASE=” & nomedatabase & “;UID=” & iddatabase & “;PASSWORD=” & pswdatabase & “;OPTION=3” Dim query As String Dim conn As Common.DbConnection conn = New OdbcConnection(cnString) Dim MyConnection As New OdbcConnection(cnString) Dim MyCommand As New OdbcCommand() Dim da As Common.DbDataAdapter Dim ds As DataSet = New DataSet Dim nonqueryCommand As OdbcCommand = conn.CreateCommand() conn.Open() query = “SELECT `Nome`, `Cognome`, `Numero di telefono` FROM `provaguida`.`rubrica` LIMIT 0, 1000;” ‘la query per ricavare i dati dal database da = New OdbcDataAdapter(query, conn) Dim cb As OdbcCommandBuilder = New OdbcCommandBuilder(da) da.Fill(ds, “dati”) DataGridView1.DataSource = ds ‘nomedatagridview.datasource = ds DataGridView1.DataMember = “dati” ‘nomedatagridview.DataMember = “dati” Catch ex As Common.DbException MsgBox(ex.ToString) Finally End Try |
Ok. Adesso andiamo nella finestra di progettazione, facciamo doppio click sul form 1 ed inseriamo nel formload il seguente richiamo alla funzione “ricavanumeri”:
ricavanumeri() |
La stessa stringa la inseriamo anche nell’ evento click del bottone inserisci.
In questo modo avremo l’ aggiornamento automatico del datagridview non appena verrà inserito un contatto o aperta la schermata principale.
Ritorniamo nella finestra di progettazione e facciamo doppio click sul bottone “Aggiorna” ed inseriamo di nuovo il richiamo alla funzione per aggiornare il datagridview:
ricavanumeri() |
Bene, adesso dobbiamo vedere come si fa ad eliminare un record dal database. Il codice è simile a quello dell’ inserimento. Procediamo.
Doppio click sul bottone elimina ed inseriamo il codice:
Dim ricavanome As String = DataGridView1.SelectedCells.Item(0).Value ‘ricava il nome della riga selezionata
Dim ricavacognome As String = DataGridView1.SelectedCells.Item(1).Value ‘ricava il cognome ” Dim ricavanumtel As String = DataGridView1.SelectedCells.Item(2).Value ‘ricava il num di tel ” Try Dim ipdatabase As String = “127.0.0.1” ‘ indirizzo ip database Dim pswdatabase As String = “” ‘ password database Dim iddatabase As String = “root” ‘ username database Dim nomedatabase As String = “provaguida” ‘ nome database Dim connectionString = “DRIVER={MySQL ODBC 3.51 Driver};SERVER=” & ipdatabase & “;DATABASE=” & nomedatabase & “;UID=” & iddatabase & “;PASSWORD=” & pswdatabase & “;OPTION=3” Dim conn As New OdbcConnection(connectionString) Dim nonqueryCommand As OdbcCommand = conn.CreateCommand() conn.Open() nonqueryCommand.CommandText = “DELETE FROM `rubrica` WHERE (`Nome`='” & ricavanome & “‘ AND `Cognome`='” & ricavacognome & “‘ AND `Numero di telefono`='” & ricavanumtel & “‘) LIMIT 1;” nonqueryCommand.ExecuteNonQuery() MsgBox(“Contatto eliminato”) Catch errore_di_connessione As Odbc.OdbcException MsgBox(“Non sono riuscito a connettermi perchè: ” + errore_di_connessione.Message) Finally End Try ricavanumeri() |
Da notare che abbiamo aggiunto anche il refresh del datagridview subito dopo la modifica.
Eccoci alla fine, è stato difficile? Per aiuti o spiegazioni mandate un commento J.
Bye bye
BlackWolf96
Devi effettuare l'accesso per postare un commento.