Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [C#] connessione ad un database Mysql

    Ciao a tutti, premetto che sono un principiante e chiedo venia per eventuali castronerie...
    Il mio problema è il seguente:
    Utilizzando VisualStudio 8.0, linguaggio c#, cercando tra forum e guide sono riuscito a connettermi ad un database esterno Mysql posizionato presso il mio provider.
    Per fare questo ho utilizzato, i driver odbc installando in locale il mysql connector.
    Lato visualStudio dal menù tools ho utilizzato connect to database per stabilire la connessione che è avvennuta con successo.
    A questo punto però, non so come manipolare i dati, nel senso che vorrei eseguire delle query e conseguentemente altri comandi ma non so da dove iniziare. Qualcuno può darmi qualche dritta?
    grazie mille

  2. #2
    Allora, penso tu abbia una connection string, cioè un insieme di valori (UserID,Password, Initial catalog e Server) con cui poterti collegare al tuo database, ciò che ti consiglio prima di tutto è di studiare bene il name space: System.Data.SqlClient, questo contiene tutto ciò di cui hai bisogno per operare sul database.

    Io posso mostrarti un breve esempio che:

    1. apre una connessione al database;
    2. invia una query;
    3. preleva i dati restituiti

    Su quanto ti spiego puoi fare tutte le domande che vuoi se qualcosa non ti è chiara.
    N.B.: potrei commettere qualche errore di sintassi, ma sto scrivendo il codice Runtime (no copia incolla ihihih)

    codice:
    using System.Data.SqlClient;
    
    namespace Connessione
    {
     
     public class Query
     {
        static const string connectionString = "stringa di connessione, questa la conosci solo tu!";
        public DataTable ExecuteQuery(string q)
        {
           SqlConnection cn = new SqlConnection(connectionString);
           SqlCommand cm = new SqlCommand(q,cn);
           cm.CommandType = CommandType.Text;
           DataTable dt = new DataTable();
           try
           { 
                 cm.Connection.Open();
                 dr = cm.ExectuionReader(CommandBehivior.SingleResult);
                 if(dr.HasRows) 
                   dt.Load(dr);
           }
           catch
           {
           }
           finally
           {
                 if(cm!=null)
                 {
                     if(cm.Connection.ConnectionState == ConnectionState.Open)
                        cm.Connection.Close();
                      cm.Dispose();
                      cm = null;
                 }
                if(dr!=null)
                {
                   dr.Dispose();
                   dr = null;
                }
           }
           return(dt);
        }
     }
    }
    Il Tutto ritorna una DataTable (se non sai cos'è ricorda che l'MSDN è un enciclopedia favolosa!) che contiene i dati risultanti dalla query (sempre se la query sia corretta e la connessione anche!).

  3. #3
    Innanzitutto grazie mille della tua disponibilità.
    Se ho capito bene, quindi datatable db è un array contenente i valori dei campi estratti dalla query.
    se volessi confrontare un valore di un campo dovrei fare ad esempio dt.nomecampo == "quellocheè" ?

  4. #4
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    Originariamente inviato da RoBYCoNTe
    Allora, penso tu abbia una connection string, cioè un insieme di valori (UserID,Password, Initial catalog e Server) con cui poterti collegare al tuo database, ciò che ti consiglio prima di tutto è di studiare bene il name space: System.Data.SqlClient, questo contiene tutto ciò di cui hai bisogno per operare sul database.

    Io posso mostrarti un breve esempio che:

    1. apre una connessione al database;
    2. invia una query;
    3. preleva i dati restituiti

    Su quanto ti spiego puoi fare tutte le domande che vuoi se qualcosa non ti è chiara.
    N.B.: potrei commettere qualche errore di sintassi, ma sto scrivendo il codice Runtime (no copia incolla ihihih)

    codice:
    using System.Data.SqlClient;
    
    namespace Connessione
    {
     
     public class Query
     {
        static const string connectionString = "stringa di connessione, questa la conosci solo tu!";
        public DataTable ExecuteQuery(string q)
        {
           SqlConnection cn = new SqlConnection(connectionString);
           SqlCommand cm = new SqlCommand(q,cn);
           cm.CommandType = CommandType.Text;
           DataTable dt = new DataTable();
           try
           { 
                 cm.Connection.Open();
                 dr = cm.ExectuionReader(CommandBehivior.SingleResult);
                 if(dr.HasRows) 
                   dt.Load(dr);
           }
           catch
           {
           }
           finally
           {
                 if(cm!=null)
                 {
                     if(cm.Connection.ConnectionState == ConnectionState.Open)
                        cm.Connection.Close();
                      cm.Dispose();
                      cm = null;
                 }
                if(dr!=null)
                {
                   dr.Dispose();
                   dr = null;
                }
           }
           return(dt);
        }
     }
    }
    Il Tutto ritorna una DataTable (se non sai cos'è ricorda che l'MSDN è un enciclopedia favolosa!) che contiene i dati risultanti dalla query (sempre se la query sia corretta e la connessione anche!).
    Sbagliato! Il namespace System.Data.SqlClient è il provider di dati .NET Framework di SQL Server
    I got the remedy

  5. #5
    mmm... mi spieghi in cosa ho sbagliato?

    Non ho mica detto il contrario? :S

    Cmq per utilizzare la DataTable non è corretto come hai detto, per prendere un campo dovresti estrarre da essa una DataRow, questo puoi farlo con un foreach:

    codice:
    foreach(DataRow dr in <DataTable>.Rows)
    {
       string campo1 = dr["NomeCampoTabellaQuery"].ToString();
    }
    spero di essere stato chiaro

  6. #6
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    qual'è l'utilità di spiegare il namespace sqlclient e la connessione sqlserver a uno che usa mysql??

    Per mysql ti consiglio il driver mysql per c#.. in internet e su sourceforge li trovi..

  7. #7
    grazie mille ad entrambi, in effetti io uso mysql, e scaricandomi il connector sono riuscito a connettermi al database, tramite la funzione sotto il menu tool connect to a database.
    Il mio problema è che un volta che sono connesso, non so come fare le query.

    Posso usare il codice, che è stato riportato oppure con Mysql devo usare un ' altra strada?
    grazie ancora

  8. #8
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    bè le classi saranno un po' diverse ma la sintassi "sql" è più o meno standard..

  9. #9
    Ragazzi avete ragione! Sul serio ieri ho detto molte ma molte stronzate! In diversi ambiti! Mi scuso ancora!

  10. #10
    Non c'è nessun problema, anzi ti ringrazio per la tua disponibilità

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.