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:

  1. 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(&quot;Database=mysql_test;Data Source=localhost;User 
       2:  Id=webva_test;Password=XXXXXXX;&quot;) 
  2. Abbiamo poi scaricato MySQL Connect/NET. La versione per questo esempio è la mysql-connector-net-5.2.5
  3. Al termine dell'installazione nella nostra directory C:\Programmi\MySQL\MySQL Connector Net 5.2.5 erano presenti le cartelle mostrate di seguito
    MySql connector .net
  4. Dalla cartella Binaries abbiamo copiato la DLL MySql.Data.dll all'interno della directory /BIN del nostro progetto .NET 3.5

Tutto qui!