ASP.NET e il MySQL Connector
Premessa
Nello sviluppo poter utilizzare un connettore ADO.NET rende estremamente più rapido il processo di sviluppo.
Dovendo descrivere in poche parole un connettore si potrebbe dire che aggiunge agli "altri" database (cioè diversi da SQL Server)
tutte le funzionalità che si hanno con il database di Microsoft.
In questo breve articolo (non a caso questa serie si chiama "Salve mondo") non illustremo le funzionalità aggiuntive
che si presentano allo sviluppatore all'interno di VisualStudio ma piuttosto ci occuperemo della fase di pubblicazione
di un semplice progetto nell'hosting .NET di serverweb.net
Esempio
All'apertura di questa pagina è stato automaticamente avviato un breve script che, utilizzando MySqlConnector/Net,
apre un database (sempre presente in hosting serverweb.net,
cancella tutti i record di una tabella, inserisce 100 record e infine effetta una query per conoscere la somma
del contenuto di tutti valori dei record della tabella stessa.
Connessione DB aperta ..
Eseguita query (record presenti 100) [SELECT COUNT(*) AS CC FROM TEST_TABLE]
Tabella cancellata [DELETE FROM TEST_TABLE]
Inseriti 100 record di test [INSERT INTO TEST_TABLE (NUMERI) VALUES(x)]
Eseguita query (risultato 5050) [SELECT SUM(*) AS CC FROM TEST_TABLE]
Connessione DB chiusa
Codice
1: Dim Log As New StringBuilder
2: 'Dim MySqlCn As New MySqlConnection("Database=mysql_test;Data Source=localhost;User Id=root;Password=thisisnot;")
3: Dim MySqlCn As New MySqlConnection("Database=mysql_test;Data Source=localhost;User Id=webva_test;Password=thisisnotapsw;")
4: Log.Append("Connessione DB aperta ..<br />")
5:
6: ' Apri connessione e controlla i record presenti
7: Dim cmd As New MySqlCommand("SELECT COUNT(*) AS CC FROM TEST_TABLE")
8: cmd.Connection = MySqlCn
9: MySqlCn.Open()
10: Dim records As Integer = cmd.ExecuteScalar()
11: Log.Append(String.Format("Eseguita query (record presenti {0}) <span>[SELECT COUNT(*) AS CC FROM TEST_TABLE]</span><br />", records))
12:
13: ' Se non ci sono record cancellare tabella
14: If records > 1 Then
15: cmd.CommandText = "DELETE FROM TEST_TABLE"
16: cmd.ExecuteNonQuery()
17: Log.Append("Tabella cancellata <span>[DELETE FROM TEST_TABLE]</span><br />")
18: End If
19:
20: ' Inserire valori per il test
21: Dim i As Integer
22: For i = 1 To 100
23: cmd.CommandText = "INSERT INTO TEST_TABLE (NUMERI) VALUES(" & i & ")"
24: cmd.ExecuteNonQuery()
25: Next
26: Log.Append("Inseriti 100 record di test <span>[INSERT INTO TEST_TABLE (NUMERI) VALUES(x)]</span><br />")
27:
28: ' Esegui query con la somma di tutti i valori presenti nella tabella
29: cmd.CommandText = "SELECT SUM(NUMERI) AS CC FROM TEST_TABLE "
30: Dim total As Long = cmd.ExecuteScalar()
31: Log.Append(String.Format("Eseguita query (risultato {0}) <span>[SELECT SUM(*) AS CC FROM TEST_TABLE]</span><br />", total))
32:
33: ' Chiudi command e database
34: cmd.Dispose()
35: MySqlCn.Close()
36: Log.Append("Connessione DB chiusa")
37:
38: ' Visualizza il risultato
39: Me.LiteralMsg.Text = Log.ToString
Per funzionare devono anche essere inserite due import all'interno del vostro codice
1: Imports MySql.Data
2: Imports MySql.Data.MySqlClient
Installazione
Per pubblicare questo programma abbiamo:
- Creato un database, una tabella e un utente attraverso il pannello Plesk. Nel nostro caso il nome
del database è "mysql_test", il nome della tabella è "test_table" mentre l'utente è webva_test. Non dimenticate
di inserire i VOSTRI valori nella stringa di connessione
1: Dim Log As New StringBuilder Dim MySqlCn As New MySqlConnection("Database=mysql_test;Data Source=localhost;User
2: Id=webva_test;Password=XXXXXXX;")
- Abbiamo poi scaricato MySQL Connect/NET. La versione per questo esempio è la mysql-connector-net-5.2.5
- Al termine dell'installazione nella nostra directory
C:\Programmi\MySQL\MySQL Connector Net 5.2.5
erano presenti le cartelle mostrate di seguito
- Dalla cartella Binaries abbiamo copiato la DLL MySql.Data.dll all'interno della directory /BIN
del nostro progetto .NET 3.5
Tutto qui!