Uilizzare il Database MySQL con .NET

mercoledì 13 ottobre 2004 - 19.19

damar3 Profilo | Newbie

Salve,

ho letto l'articolo "Utilizzare il Database MySQL con .NET " e l'ho trovato molto interessante. Ho provato a fare un'qualcosa di simile ma con scarsi risultati.

Il listato 2 :

DataSet ds=new DataSet();
MySQLConnection mysqlconn=new MySQLConnection("Server=Localhost;Data Source=test;UID=root;PWD=");

mysqlconn.Open();
MySQLDataAdapter da=new MySQLDataAdapter("SELECT * FROM EMPLOYEES",mysqlconn);
da.Fill(ds,"Employees");

dataGrid1.DataSource=ds.Tables["Employees"];
mysqlconn.Close();

immagino che sia per C#.

Voglio provare a fare una cosa simile per VB.NET. Mi potreste aiutare?

Allora, da come avete già capito, sono neofita in materia ma imparo in fretta.
Quello che ho capito è che il Datagrid è il "contenitore" dove vengono visualizzati i dati; ad un Datagrid si associa un Dataset che è una sorta di cache dove vengono memorizzati i dati per poi visualizzarli. Capito bene?

Un grazie anticipato per la risposta. Se qualcuno poi mi postasse l'esempio in VB.NET gliene sarei grato.

Leo Profilo | Junior Member

prova cosi, vedi se ti funziona perche' l'ho copiato e modificato per te, poi se hai problemi scrivimi che ti dico come fare. devi usare un provider di terze parti e questo forse lo sai gia, oppure l'odbc di microsoft, ma te lo sconsiglio perche' e' piu' lento.nel listato seguente poi aggiungi le eccezzioni per gli errori e sei a posto.
Fammi sapere .. ciao!!
Mirco

-------

Private sServer As String = "NomeServer"
Private sDatabase As String = "NomeDb"
Private sUser As String = "Utente"
Private sPassword As String = "Pwd"
Public Conn As New MySqlConnection
dim str as string = "select * from tabella"

Dim MyConnString As String = "Server=" & sServer & ";database=" & sDatabase & ";uid=" & sUser & ";pwd=" & sPassword & ";"
Conn = New MySqlConnection(MyConnString)
Conn.Open()

Dim DataAdapter As New MySqlDataAdapter()
Dim dataset As New DataSet("NomeTabella")

DataGrid1..DataSource = Nothing
DataAdapter.SelectCommand = New MySqlCommand(sql, Conn)
DataGrid1.DataMember = "NomeTabella"
DataAdapter.Fill(dataset, "NomeTabella")
DataGrid1.DataSource() = dataset)

conn.close()

damar3 Profilo | Newbie

Ciao,

io avevo fatto una cosa del genere. Come .NET Data Provider ho usato MySqlDriverCS.

Dim ds As New DataSet
Dim mysqlconn As New MySQLConnection("Server=localhost;Data Source=test;UID=mediatel_;PWD=")
mysqlconn.Open()
Dim da As New MySQLDataAdapter("select * from test", mysqlconn)
da.Fill(ds, "test")
DataGrid1.DataSource = ds.Tables.Item(1)
mysqlconn.Close()

ma ho un errore di eccezione non gestita sulla Open ();

Ho provato a gestire le eccezioni in questo modo :


Dim ds As New DataSet
Dim mysqlconn As New MySQLConnection("Server=localhost;Data Source=test;UID=mediatel_;PWD=")
Try
mysqlconn.Open()
Dim da As New MySQLDataAdapter("select * from test", mysqlconn)
da.Fill(ds, "test")
DataGrid1.DataSource = ds.Tables.Item(1)
Catch ex As MySQLDriverCS.MySQLException
MsgBox(ex)
End Try
mysqlconn.Close()

Ma giustamente ho l'errore che ex non è una stringa e non posso stamparla...
Come posso fare?

Grazie per l'aiuto!

damar3 Profilo | Newbie

Sono riuscito a stampare l'errore.

E' bastato fare così :

MsgBox(ex.ToString)

L'errore è questo riassumendolo :

Can't connect. Accesso negato per l'utente ODBC@localhost (mot de passe : NON)



trinity Profilo | Guru

Hai risolto il tuo problema? se non l'hai fatto mi rispieghi un secondo le tue esigenze e poi per mysql ti consiglio di utilizzare il provider mysqlconnector è free ed è stato creato proprio dalla ditta mysql, otra trovi la versione beta ma io già la sto testando e per ora non ho trovato problemi..ti posto il link:

http://dev.mysql.com/downloads/connector/net/1.0.html

Ciao
Fabio

damar3 Profilo | Newbie

Grazie mille,

ho risolto usando mysqlconnector. Prima usavo MySqlDriverCS. Un'ultimissima cosa se possibile, mi potresti consigliare una guida su DataGrid, Dataset e le cose inerenti il loro utilizzo ?

I miei commenti dovrebbero essere corretti (almeno spero)

mysqlconn.Open() 'Mi connetto

da.SelectCommand = New MySqlCommand(query, mysqlconn) 'eseguo la query

da.Fill(ds, "tabella") ' Metto il contenuto della query in una tabella

DataGrid1.DataSource = ds.Tables.Item("tabella") 'Associo al datagrid il dataset

mysqlconn.Close() ' chiudo la connessione

trinity Profilo | Guru

I tuoi commenti sono giusti, io per esempio utilizzo anche il dataadapter esempio:

Dim ds As New DataSet
Dim da As New MySqlDataAdapter
da = New MySqlDataAdapter("SELECT * FROM nome_tabella", connessione)
da.Fill(ds, "nome_tabella")
DataGrid1.DataSource = ds.Tables.Item("tabella")

poi per le guide ti consiglio di vedere i libri della Microsoft Press.

Ciao
Fabio

damar3 Profilo | Newbie

Grazie di tutto!

damar3 Profilo | Newbie

Se provo a fare un Uodate non succede niente. Non mi da errore ma non esegue niente. Ho fatto così :

Dim stringa_connessione As String
Dim da As New MySqlDataAdapter

stringa_connessione = "Database=diegusyi_diemme;Data Source=localhost;User Id=root;Password="

Dim mysqlconn As New MySqlConnection(stringa_connessione)

Try
mysqlconn.Open() 'Mi connetto
da.UpdateCommand = New MySqlCommand(query, mysqlconn) 'eseguo la query di update
mysqlconn.Close() 'Chiudo la connessione
Catch ex As MySqlException
MsgBox(ex.ToString)
Return ex.ToString
End Try

Return 0

Credevo che dovevo mettere da.UpdateCommand o da.InsertCommand per eseguire una query di update o Insert invece non è così.

Come posso fare?

trinity Profilo | Guru

Scusami ma usa il command per fare Insert ed Update...

Esempio:

Dim db As New MysqlConnection()
Dim cmd As New MysqlCommand()

esegui la connessione al database e poi fai questo

dim sql As String

sql="Insert Into nome_tabella(campo1,campo2...) Values('1','2'...)

cmd= New MysqlCommand(sql,db)
Cmd.ExecuteNonQuery

Ciao
Fabio

damar3 Profilo | Newbie

Ok perfetto.

Solo che mi chiedevo se era conveniente in ogni caso usare il DataAdapter oppure no.

Quindi in linea di principio mi consigli di usare il DataAdapeter e Dataset in lettura mentre in Inserimento/Modifiche/Cancellazioni direttamente Command ?

trinity Profilo | Guru

Certamente!

Ciao

kevin Profilo | Junior Member

Ciao a tutti,
ho mondato anche io i driver per mysql presi da qui http://dev.mysql.com/downloads/connector/net/1.0.html

il problema è che quando eseguo il codice mi da errore al momento dell'open

vi inserisco il codice

Dim ds As New DataSet
Dim mysqlconn As New MySqlConnection("Server=14.184.216.15;Data Source=prova;UID=root;PWD=123456")
Try
mysqlconn.Open() 'MI DA ERRORE QUI
Catch ex As MySql.Data.MySqlClient.MySqlException
MessageBox.Show(ex.ToString)
End Try
Dim da As New MySqlDataAdapter("select * from Prodotti", mysqlconn)
da.Fill(ds, "Prodotti")
DataGrid1.DataSource = ds.Tables.Item(1)
mysqlconn.Close()

Grazie 1000

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5