[VB.NET] Comandi MySQL

mercoledì 25 agosto 2004 - 10.36

w_t Profilo | Junior Member

Tramite un Applicazione VB.NET devo connettere a MySQL e fare molte query di vario genere,

ora, a parte i SELECT, INSERT, e UPDATE, e qui tutto ok,
le cose che mi servono sono altre, tipo :

sapere la lista dei Database residenti nel Server,
sapere la lista delle Tabelle contenuti in un certo Database,
sapere il nome dei campi di una certa Tabella,
sapere i record presenti in una tabella,
Rinominare un Database e una Tabella,
Fare una Conversione di Database da MySQL ad Access,


Quello che di preciso miservirebbe sapere e' questo:

come li applico ad un Command di VB.NET ???

se ad esempio volessi vedere la lista di tabelle contenute nel mio Database ???


oConn.Open()
Dim oComm As New OleDbCommand(" ????????? ", oConn)
Dim oRead As OleDbDataReader = oComm.ExecuteReader
oRead.Read()

MsgBox(oRead(" ????????? "))

oConn.Close()




se qualcuno mi puo' indicare come fare o dove trovare un tutorial che fa al caso lo ringrazierei moltissimo.



PS. ma e' possibile da VB.NET ???

Brainkiller Profilo | Guru

Generalmente ogni Database Server mette a disposizione una serie di Query o di comandi che ti permettono di estrarre informazioni del database stesso. Elenco DB, elenco Tabelle, ecc. diciamo i metadati del tuo database. In Access per esempio queste cose sono salvate nella tabella nascosto MSYSObjects . In SQL Server invece molte informazioni di sistema vengono contenuto nel database Master.

Per quanto riguarda MySQL Ci sono comandi diversi, però naturalmente li trovi semplicemente sfogliando la guida/SDK di MySQL che sarà inclusa nel prodotto oppure online.
Un comando per elencare i Database per esempio è questo: SHOW DATABASES
Se tu lo lanci da un client vedrai l'elenco dei database, allo stesso modo puoi farlo via codice VB.NET o C#. Comunque se leggi questo articolo è già un buon punto di partenza ti fa vedere come usare per esempio SHOW TABLES per elencare le tabelle:
http://www.dotnethell.it/articles/article.aspx?ArticleID=119

ciao
david

w_t Profilo | Junior Member

Grazie mille per l'indicazione, ho seguito la guida di esempio e ho fatto un test:


Dim Conn As New OleDbConnection("Provider=MySqlProv;Data Source=MyDatabase;Port=3306;Password=admin;User ID=admin;Location=localhost;")
Conn.Open()
Dim Comm As New OleDbCommand("SHOW TABLES", Conn)
Dim dRead As OleDbDataReader = Comm.ExecuteReader
While dRead.Read()
MsgBox(dRead(0).ToString())
End While
Conn.Close()

Mi restituisce il seguente errore:

Indice oltre i limiti della matrice.

Perche???

w_t Profilo | Junior Member

FATTO!!!!!!!!!

oConn1.Open()
Dim schemaTable As DataTable = oConn1.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
Dim i As Integer
For i = 0 To schemaTable.Rows.Count - 1
MsgBox(schemaTable.Rows(i).Item(2))
Next
oConn1.Close()


grazie a tutti !!!!!!

Brainkiller Profilo | Guru

Si, funziona anche così anche se quello che usi è un metodo generico, potrebbe dare problemi con tipi di DB diversi.
L'istruzione che ti ho consigliato invece riceve dati "originali" direttamente da MySQL.

Ti può dare errore perchè non è detto che ti viene restituito un Recordset.

ciao
david

xonica Profilo | Newbie

VI PREGO STO IMPAZZENDO!!!!!

perchè mi restituisce qst messaggio:

objconn.ConnectionString = "Provider=MySqlProv;Data Source=test;Port=3306;Password=;User ID=root;Location=localhost;"
objConn.Open() <-------- Informazioni aggiuntive: Il provider 'MySqlProv' non è registrato nel computer locale

w_t Profilo | Junior Member

Hai installato i Driver "MyOLEDB" nel sistema ???

http://solutions.mysql.com/other/related-sites/?item=142

xonica Profilo | Newbie

ah ecco!...... non riuscivo a trovare il link per scaricarlo! GRAZIE
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5