in

DotNetSide

Dot Net South Italy Developers User Group
Latest post 18 Dec 2007 12:40 by Omega. 15 replies.
Page 1 of 2 (16 items) 1 2 Next >
Sort Posts: Previous Next
  • 04 Jan 2007 18:21

    • pisquik
    • Top 10 Contributor
      Male
    • Joined on 28 Jun 2006
    • Taranto
    • Posts 251
    • Points 2,020

    [C#]Query SQL in un DataGridView

    Cosa devo fare per visualizzare i risultati di una query scritta dall'utente, quindi assolutamente variabile, in un DataGridView?

    P.S.:Connessione al server e al DB già effettuata.

    Pasquale Innato Studente Sviluppatore Personal Blog Technical Blog SeQueryeL: il mio primo progetto
    • Post Points: 50
  • 04 Jan 2007 18:34 In reply to

    Re: [C#]Query SQL in un DataGridView

    ..presumo che si tratta solo di get...ad ogni modo massima cautela :D...
    ...se l'utente deve creare lo statement da passare al db(sql server), basta che questo lo passi ad un sqlCommand, instanzi un sqlDataAdapter e poi popola il dataset con la Fill...invine basta fare il bind della datagrid

    http://addshare.blogspot.com/ Imparo, Imparo, Imparo

    • Post Points: 5
  • 04 Jan 2007 19:10 In reply to

    Re: [C#]Query SQL in un DataGridView

    In realtà non è mai una buona pratica lasciare all'utente la scrittura delle query. Anche se solo di lettura, l'utente smaliziato potrebbe essere in grado di eseguire operazioni non autorizzate sul database attraverso un attacco di tipo Sql Injection. Quindi ti consiglio di fare attenzione e di verificare se la soluzione può essere diversa. Non pensare mai: "l'utente non lo farà mai".

    ciauz 

    Fabio Cozzolino
    CoFounder of DotNetSide - Dot Net South Italy Developers
    Microsoft MCAD.NET Blog: http://blogs.dotnetside.org/fabio

    • Post Points: 20
  • 04 Jan 2007 21:01 In reply to

    • pisquik
    • Top 10 Contributor
      Male
    • Joined on 28 Jun 2006
    • Taranto
    • Posts 251
    • Points 2,020

    Re: [C#]Query SQL in un DataGridView

    A me non interessa cosa farà l'utente, perché il mio software si occupa solo di far scrivere ed eseguire query nei database di SQL Server 2005, una sorta di mini-mini-sostituto di SQL Server Management Studio, comunque un programma non molto complesso.
    Pasquale Innato Studente Sviluppatore Personal Blog Technical Blog SeQueryeL: il mio primo progetto
    • Post Points: 5
  • 04 Jan 2007 22:07 In reply to

    • Tiziana
    • Top 10 Contributor
      Female
    • Joined on 20 Mar 2006
    • Bari
    • Posts 622
    • Points 10,620

    Re: [C#]Query SQL in un DataGridView

    Ciao,

    se hai creato un SqlDataSource da associare al DataGridView, hai a disposizione la proprietà SelectCommand, che dovrà essere settata da codice o fatto il binding al valore della textbox in cui l'utente inserisce la query.

    Dimmi se ho capito il contesto , in caso contrario fornisci qualche dettaglio in più per aiutarti meglio.

    Ciao! 

    Tiziana Loporchio
    Software Solutions Architect

    Microsoft Certified Trainer
    Microsoft Certified Professional Developer
    My Blog - .NetSide Team Member

    • Post Points: 20
  • 07 Jan 2007 15:17 In reply to

    • pisquik
    • Top 10 Contributor
      Male
    • Joined on 28 Jun 2006
    • Taranto
    • Posts 251
    • Points 2,020

    Re: [C#]Query SQL in un DataGridView

    Io ho creato una SqlConnection e poi un SqlCommand. Ora il comando (testuale) dell'istanza SqlCommand verrà scritto in una TextBox e poi eseguito. Io vorrei vedere il risultato delle modifiche, la semplice visualizzazione (se scelgo il comando SELECT * FROM per esempio), è tutto il resto dentro una DataGridView (la proprietà DataSource della DataGridView è la stringa di connessione dell'istanza SqlConnection, da me prima inizializzata) o una altro componente simile. Spero si possa fare!
    Pasquale Innato Studente Sviluppatore Personal Blog Technical Blog SeQueryeL: il mio primo progetto
    • Post Points: 20
  • 07 Jan 2007 15:38 In reply to

    Re: [C#]Query SQL in un DataGridView

    ...è più o meno quello che ti ho risposto qualche giorno fa(sempre se ho capito bene la tua necessità)...se la tua textbox ha come id: txtStatement(contiene ciò: Select * from Orders) il codice sarà più o meno questo:
    //PP: il tuo dataset
    DataSet ds = new DataSet();
    SqlCommand sqlCommand = new SqlCommand(txtStatement.Text.Trim(),oggetto SqlConnection);
    //PP: instanzi il dataadapter
    SqlDataAdapter sqlDa = new SqlDataAdapter();
    //PP: connetti il SqlCommand e l'SqlDataAdapter
    sqlDa.SelectCommand = sqlCommand;
    //PP: riempi il dataset
    sqlDa.Fill(ds); una volta popolato il dataset poi darlo in pasto alla tua datagrid con la proprietà Datasource e richiamare il metodo DataBind...

    ...spero di averci preso...:) 

    http://addshare.blogspot.com/ Imparo, Imparo, Imparo

    • Post Points: 20
  • 07 Jan 2007 16:15 In reply to

    • pisquik
    • Top 10 Contributor
      Male
    • Joined on 28 Jun 2006
    • Taranto
    • Posts 251
    • Points 2,020

    Re: [C#]Query SQL in un DataGridView

    Mi dispiace dirlo ma, non riesco a richiamare il metodo DataBind, la sintassi è

    DataGridView1.DataBind(); ?

    Perchè se è così, non la tovo nè nell'IntelliSense e nè quando compilo il tutto... Sad

    Pasquale Innato Studente Sviluppatore Personal Blog Technical Blog SeQueryeL: il mio primo progetto
    • Post Points: 20
  • 07 Jan 2007 16:56 In reply to

    Re: [C#]Query SQL in un DataGridView

    ...in effettiti ho fatto un esempio con una datagrid(ASP NET 1.1)...se ricordo bene in.NET 2.0 dovresti usare l'oggetto DataSource...

    http://addshare.blogspot.com/ Imparo, Imparo, Imparo

    • Post Points: 20
  • 07 Jan 2007 17:09 In reply to

    • pisquik
    • Top 10 Contributor
      Male
    • Joined on 28 Jun 2006
    • Taranto
    • Posts 251
    • Points 2,020

    Re: [C#]Query SQL in un DataGridView

    Ti ricordo che parlo di un software standalone quindi bastato sulle WinForms e non su ASP.NET.
    Pasquale Innato Studente Sviluppatore Personal Blog Technical Blog SeQueryeL: il mio primo progetto
    • Post Points: 20
  • 07 Jan 2007 19:53 In reply to

    Re: [C#]Query SQL in un DataGridView

    ...si si certo...
    se ricordo bene l'esempio che ti ho fatto in ASP.NET diventa in un'applicazione Windows Form:

    la textbox txtStatement contiene: "select * from Orders"; 

          DataSet ds = new DataSet();
          SqlConnection con = new SqlConnection();
          con.ConnectionString = "Server=.;Database=NorthWind;UID=sa;PWD=sa;Trusted_Connection=False";
          SqlCommand com = new SqlCommand(txtStatement.Text.Trim(), con);
          SqlDataAdapter da = new SqlDataAdapter();
          da.SelectCommand = com;
          da.Fill(ds);
          dataGridView1.DataSource = ds;
          dataGridView1.DataMember = ds.Tables[0].TableName;

    ....oppure puoi usare l'oggetto bindingSource da assegnare al datasource della datagridview...oppure assegnare al DataSource(come ti avevo indicato nel messaggio precedente) della datagridview ds.Tables[0]...ovviamenete nel caso specifico devi verificare se il dataset contiene una DataTable..quindi:
    if( ds.Tables.Count > 0){.....}

    ...oppure puoi semplificare il tutto instanziando una DataTable al posto del Dataset quindi l'esempio diventa:
          DataTable dt = new DataTable();
          SqlConnection con = new SqlConnection();
          con.ConnectionString = "Server=.;Database=NorthWind;UID=sa;PWD=sa;Trusted_Connection=False";
          SqlCommand com = new SqlCommand("select * from Orders", con);
          SqlDataAdapter da = new SqlDataAdapter();
          da.SelectCommand = com;
          da.Fill(dt);
          dataGridView1.DataSource = dt;

    ...spero che vada meglio adesso :) 

    http://addshare.blogspot.com/ Imparo, Imparo, Imparo

    • Post Points: 20
  • 10 Jan 2007 15:08 In reply to

    • pisquik
    • Top 10 Contributor
      Male
    • Joined on 28 Jun 2006
    • Taranto
    • Posts 251
    • Points 2,020

    Re: [C#]Query SQL in un DataGridView

    Meglio? Perfetto! Una cosa però, come si aggiorna la DataGridView, a parte il metodo Refresh() perché ho già provato ma non funziona?
    Pasquale Innato Studente Sviluppatore Personal Blog Technical Blog SeQueryeL: il mio primo progetto
    • Post Points: 20
  • 11 Jan 2007 13:19 In reply to

    Re: [C#]Query SQL in un DataGridView

    ..cosa intendi per aggiornamento?...cioè se devi fare un nuovo bind o cosa

    http://addshare.blogspot.com/ Imparo, Imparo, Imparo

    • Post Points: 20
  • 11 Jan 2007 20:08 In reply to

    • pisquik
    • Top 10 Contributor
      Male
    • Joined on 28 Jun 2006
    • Taranto
    • Posts 251
    • Points 2,020

    Re: [C#]Query SQL in un DataGridView

    Intendo fare un reload, refresh: vedere le eventuali modifiche apportate tramite la pressione di un button, ti ripeto, a parte il metodo Refresh(), ce sembra non funzionare.

    Pasquale Innato Studente Sviluppatore Personal Blog Technical Blog SeQueryeL: il mio primo progetto
    • Post Points: 20
  • 12 Jan 2007 15:15 In reply to

    Re: [C#]Query SQL in un DataGridView

    ...uhm ma se non sbaglio il metodo refresh è a livello di ridisegnamento del controllo....devi controllare su msdn...ma sono abbastanza sicuro che non è quello che intendi te :D
    ....se vuoi vedere le modifiche apportate, devi rifare la fill...se invece per aggiornamento vuoi dire che hai modificato un campo e vuoi quindi eseguire un'update sul db allora in tal caso devi costruirti a "manina" il comando insert, update, delete
    ....oppure c'è una via più veloce ma con un calo di prestazioni, cioè usando l'oggetto SqlCommandBuilder
    ... su due piedi e senza visual studio il codice di un'update nel nostro esempio sarebbe una cosa del genere:
    SqlConnection con = new SqlConnection();
    con.ConnectionString = "Server=.;Database=NorthWind;UID=sa;PWD=sa;Trusted_Connection=False";
    SqlCommand com = new SqlCommand("select * from Orders", con);
    SqlDataAdapter da = new SqlDataAdapter( com);
    SqlCommandBuilder cmdBldr = new SqlCommandBuilder( da);
    cmdBldr.GetUpdateCommand();
    da.UpdateCommand = cmdBldr.GetUpdateCommand();
    da.Update( dt);
    ...dt è la datatable che presenterà per esempio una riga modificata....non sò se sono stato chiarissimo:)

    http://addshare.blogspot.com/ Imparo, Imparo, Imparo

    • Post Points: 5
Page 1 of 2 (16 items) 1 2 Next >
Powered by Community Server (Commercial Edition), by Telligent Systems