+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Connessione MySql

  1. #1
    ljt
    ljt non  in linea Scolaretto
    Post
    240
    Like Inviati  
    0
    Like Ricevuti  
    0
    Salve ragazzi,

    eccomi di nuovo a chiedervi aiuto.

    Sto cercando di capire come funziona la connessione MySQL

    Cosa ho fatto:
    Ho scaricato i driver MySQL dal sito Oracle
    L'ho installati
    Ho importato la dll MySql.Data.dll nel progetto
    Ho scritto i comandi per la connessione:
        Public cMysql As MySqlClient.MySqlConnection
        Public sMySql As String = "Server=1.1.1.1;Port=1234;Database=MioDatabase;Uid=Utente;Pwd=Password;"
    
    
        Public Sub Apri_Connessione_MySql(ByRef Mysqlconn As MySqlClient.MySqlConnection, ByVal MysqlStr As String)
               Mysqlconn.ConnectionString = MysqlStr
    
            Try
                If Mysqlconn.State = Data.ConnectionState.Closed Then
                    Mysqlconn.Open()
                End If
            Catch
                ScriviFile(":" & DateTime.Now & " : ERRORE 20 Impossibile aprire la connessione al database Mysql")
            End Try
        End Sub
    
        Public Sub Chiudi_Connessione_Mysql(ByRef Mysqlconn As ADODB.Connection)
            Mysqlconn.Close()
        End Sub
    
    E fin qui tutto ok.
    Adesso vorrei leggere dal database:
            Dim CMD As New MySqlClient.MySqlConnection
            Dim SQL As String = ""
            Dim RD As MySqlClient.MySqlDataReader
    
          Try
                Apri_Connessione_MySql(cMysql, sMySql)
                CMD.ConnectionString = cMysql.ConnectionString
    
                SQL = "select * from " & miatabella & " "
                SQL = SQL & "where campo1 = 'true'"
    
                CMD.ConnectionString = SQL
                RD = CMD.....
    
    E qui non riesco a capire come fare per far si che venga letto i database.

    Tenete conto che sto cercando di adattare il codice ripreso per effettuare connessioni a informix, postgres e Microsoft SQL. Questo per cercare di mantenere un certo standard nei miei programmi.

    Per le suddette connessioni normalmente scrivo:
    RD = CMD.ExecuteReader
    
    Le mie domande:
    Cosa devo aggiungere per eseguire la query dopo CMD?
    Quello che ho fatto fino ad esso corretto, oppure sto proprio sbagliando approccio?

    Grazie di nuovo e prometto che leggero attentamente tutte le vostre riposte


  2. #2
    ljt
    ljt non  in linea Scolaretto
    Post
    240
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ho risolto l'arcano.
    Il problema il connettore ripreso dal sito di Oracle.
    A quanto pare non compatibile con Vb.net.
    Cos ho preso una strada diversa: NUGET
    Li ho trovato quello corretto e a quel punto andato tutto ok.

    Grazie e alla prossima.

  3. #3
    Ferrari_and non  in linea Scolaretto
    Post
    294
    Like Inviati  
    2
    Like Ricevuti  
    3
    Il connettore ripreso sul sito web oracle compatibile con la piattaforma .net
    del codice di esempio postato mi sembra ci sia un po di confusione tra connessione alla base dati e recupero delle informazioni in essa contenuta.

    Informazioni che solitamente vanno poste in una collezione, struttura o recordset che una cosa diversa dalla connessione.

  4. #4
    L'avatar di AntonioG
    AntonioG non  in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,364
    Blogs
    5
    Like Inviati  
    5
    Like Ricevuti  
    31
    Concordo con Ferrari ... hai scritto un codice che ha poco senso ... forse hai trovato un esempio corretto e pensi che l'altra strada sia corretta ...
    ℹ️ Leggi di pi su AntonioG ...

  5. #5
    ljt
    ljt non  in linea Scolaretto
    Post
    240
    Like Inviati  
    0
    Like Ricevuti  
    0
    Sinceramente uso un simil codice per le connessioni ad altri database con successo. Ma questo non esclude che quello che utilizzo possa essere errato.
    Il problema che ho avuto con oracle non era tanto sulla sintassi, quanto sul fatto (molto strano gi capitato in passato) che nel momento dell'esecuzione del codice (f5) tutto quello che si riferiva a myslq veniva segnato come errore.
    Cambiato il connettore ripreso dal Nuget tutto a iniziato a funzionare alla grande.
    Comunque posto il codice che uso adesso cos mi potete dare un consiglio:
    Per aprire e chiudere la connessione uso all'interno di un modulo
       Public Sub Apri_Connessione_MySql(ByRef Mysqlconn As MySqlConnection, ByVal MysqlStr As String)
            Mysqlconn = New MySqlConnection
            Mysqlconn.ConnectionString = MysqlStr
    
            Try
                If Mysqlconn.State = Data.ConnectionState.Closed Then
                    Mysqlconn.Open()
                End If
            Catch
                ScriviFile(":" & DateTime.Now & " : ERRORE 25 Impossibile aprire la connessione al database Mysql. Verificare la rete")
                ScriviFile("+-------------------------------------------------------------------------------------------+")
            End Try
        End Sub
    Public Sub Chiudi_Connessione_Mysql(ByRef Mysqlconn As MySqlConnection)
            Mysqlconn.Close()
        End Sub
    
    Mentre per l'utilizzo del database (in questo caso solo lettura)
          Dim CMD As New MySqlCommand
          Dim SQL As String = ""
    
           Apri_Connessione_MySql(cMysql, sMySql)
           CMD.Connection = cMysql
    
    SQL = "select * from miodatabase"
                CMD.CommandText = SQL
                CMD.ExecuteNonQuery()
    
    -------ALTRE ISTRUZIONI-------
    
            Chiudi_Connessione_Mysql(cMysql)
    
    Aspetto i vostri consigli.

    Grazie mille



    [/code]

  6. #6
    Ferrari_and non  in linea Scolaretto
    Post
    294
    Like Inviati  
    2
    Like Ricevuti  
    3
    Quali consigli vuoi?
    Nell' ultimo esempio usi 2 oggetti diversi uno una connection il secondo un sql Command che si appoggio sul connection aperta.
    Anche i driver oracle funzionano cos con sintassi diversa ma il principio lo stesso.

    Per gli errori in fase di esecuzioni c' da vedere che errore era. Certo che se provi ad acquisire dei record su una oggetto che non lo prevede ...

  7. #7
    Dev-01 non  in linea Scribacchino
    Post
    540
    Like Inviati  
    2
    Like Ricevuti  
    0
    Se ti venivano segnalati gli errori relativi le dichiarazioni di oggetti MySQL vuol dire che la soluzione aveva perso il riferimento alla libreria 'MySQL.Data' (sempre che tu lo abbia costituito) o che non avevi dichiarato il relativo 'Imports' all'interno dei documenti coinvolti.

    Escluderei la seconda ipotesi per via della non segnalazione di errori dopo l'installazione del pacchetto, tuttavia pu essere (non ne sono sicuro) che l'inclusione dello stesso all'interno del progetto ne renda la direttiva 'Imports' superflua.

  8. #8
    ljt
    ljt non  in linea Scolaretto
    Post
    240
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da Dev-01 Visualizza il messaggio
    Se ti venivano segnalati gli errori relativi le dichiarazioni di oggetti MySQL vuol dire che la soluzione aveva perso il riferimento alla libreria 'MySQL.Data' (sempre che tu lo abbia costituito) o che non avevi dichiarato il relativo 'Imports' all'interno dei documenti coinvolti.

    Escluderei la seconda ipotesi per via della non segnalazione di errori dopo l'installazione del pacchetto, tuttavia pu essere (non ne sono sicuro) che l'inclusione dello stesso all'interno del progetto ne renda la direttiva 'Imports' superflua.
    La libreria di MySQL l'ho importata nei riferimenti e anche tramite import nel progetto (anche se superfluo)
    Quello che posso aggiungere che l'ho provata in vb.net 2015 ed ho avuto il solito risultato.In passato mi gi successo per le dll di postgres. Solito problema. Nel momento della scrittura del codice non veniva segnalato nessun errore. Solo nel momento dell'esecuzione saltavano fuori sottolineati di rosso. Anche l, sostituita la libreria non ho avuto pi problemi.
    Sinceramente penso anche io che sia un problema di perdita di riferimento alla libreria MySQL.

  9. #9
    ljt
    ljt non  in linea Scolaretto
    Post
    240
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da Ferrari_and Visualizza il messaggio
    Quali consigli vuoi?
    Nell' ultimo esempio usi 2 oggetti diversi uno una connection il secondo un sql Command che si appoggio sul connection aperta.
    Dunque potrei usare un oggetto solo?

  10. #10
    Ferrari_and non  in linea Scolaretto
    Post
    294
    Like Inviati  
    2
    Like Ricevuti  
    3
    No ne servono sempre 2 uno per la connessione e uno che contenga i dati recuperati su quella connessione (se devi leggere e manipolare i dati).

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Connessione db mysql
    Da >Luca< nel forum Visual Basic .Net
    Risposte: 6
    Ultimo Post: 26-04-2015, 13:06
  2. VB.NET e connessione MYSQL
    Da robyca62 nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 02-03-2015, 17:46
  3. Connessione MySql
    Da Alex22 nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 12-01-2012, 14:38
  4. Connessione a Mysql
    Da sal21 nel forum Visual Basic 6
    Risposte: 1
    Ultimo Post: 10-07-2009, 07:44
  5. Connessione a Db MySQL
    Da niclo nel forum Visual Basic .Net
    Risposte: 5
    Ultimo Post: 18-05-2008, 11:36