none
creare query su database DataGridView in sql RRS feed

  • Domanda

  • Salve,

    il mio obiettivo è creare un eseguibile che importi i dati  su un database da un file di txt e che successivamente possa fare delle query su questo database creato, possibilmente tramite linguaggio sql. Per la prima parte ci sono, per la seconda chiedo aiuto.

    nel dettaglio:

    Nel mio form ho un DataGridView vuoto. Premendo un button  popolo l mio DataGridView
    importando i dati da un file di testo txt presente sul disco.

    questo il codice:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim leggi As New System.IO.StreamReader("c:\database.txt", Encoding.GetEncoding(1252))  
    Dim riga As String  
    Dim dividi() As String   
    Do While leggi.Peek() <> -1    
    riga = leggi.ReadLine()   
    dividi = Split(riga, vbTab) 'separatore   
    DataGridView1.ColumnCount = dividi.Count 'creo numero di colonne in base al testo
    DataGridView1.Rows.Add(dividi)  
    Loop 
    End Sub
    
    


    Una volta creata questo database (importando i dati dal file di testo) come faccio da codice a creare query sul DataGridView in linguaggio sql? potete farmi qualche esempio di codice?

    grazie
    mercoledì 25 maggio 2011 00:02

Tutte le risposte

  • ciao Niccolo84,

    con il codice che hai scritto, non hai creato un database ma hai semplicemente popolato una griglia con i dati letti da un file di testo.

    Un Database è una rappresentazioni dei dati persistenti sul disco, nel tuo caso ogni volta che chiudi la tua applicazione hai bisogno di rileggere lo txt. I dati tu li hai in memoria e non su disco.

    Quindi se vuoi davvero creare un db, tipo access o sql server, ti devi creare dei metodi che scrivono nel db i dati che leggi dal file txt.

    In questo modo popoli il db e poi leggerai i dati dal db e ne farai il binding alla griglia con tutte le query sql che pensi siano necessarie


    Diego Riccardi
    mercoledì 25 maggio 2011 07:19
  • Salve,

    il mio obiettivo è creare un eseguibile che importi i dati  su un database da un file di txt e che successivamente possa fare delle query su questo database creato, possibilmente tramite linguaggio sql. Per la prima parte ci sono, per la seconda chiedo aiuto.


    Ciao niccolo84,

    come guistamente sottolineato da Diego , hai solamente un datagrid popolato mediante un file di testo.

    Per poter eseguire delle query devi avere un database, la procedura di questo link spiega , a meno che tu sia già al corrente di come farlo come crare un applicazione associata a dati.

    http://msdn.microsoft.com/it-it/library/h0y4a0f6.aspx

    Quando hai crerato un database , poi si potrà vedere come e cosa andare ad interrogare nella o nelle tabelle.

    Ciao


    Carmelo La Monica  http://community.visual-basic.it/carmelolamonica/



    mercoledì 25 maggio 2011 08:35
  •  

     

    Mi potresti aiutare sul come fare? Anche con uno stralcio di codice se ti è possibile.

    come faccio a prendere i dati dal file di testo?

    cmq grazie per la riposta

    mercoledì 25 maggio 2011 20:47
  • ciao Niccolo84,

    con il codice che hai scritto, non hai creato un database ma hai semplicemente popolato una griglia con i dati letti da un file di testo.

    Un Database è una rappresentazioni dei dati persistenti sul disco, nel tuo caso ogni volta che chiudi la tua applicazione hai bisogno di rileggere lo txt. I dati tu li hai in memoria e non su disco.

    Quindi se vuoi davvero creare un db, tipo access o sql server, ti devi creare dei metodi che scrivono nel db i dati che leggi dal file txt.

    In questo modo popoli il db e poi leggerai i dati dal db e ne farai il binding alla griglia con tutte le query sql che pensi siano necessarie


    Diego Riccardi

    Mi potresti aiutare sul come fare? Anche con uno stralcio di codice se ti è possibile.

    come faccio a prendere i dati dal file di testo?

    cmq grazie per la riposta.

     

    ps: non avevo messo la citazione

    mercoledì 25 maggio 2011 21:14
  •  

     

    Mi potresti aiutare sul come fare? Anche con uno stralcio di codice se ti è possibile.

    come faccio a prendere i dati dal file di testo?

    cmq grazie per la riposta


    Ciao niccolo84,

     

    questo e un esempio di query con linq to dataset , ottimo linguaggio per poter interrogare una tabella di un database,

     

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     Dim query = From tipe In Me.Database1DataSet.Tabella1 _
     Where tipe.Campo1 = TextBox1.Text _
     Select tipe
     Me.Tabella1BindingSource.DataSource = query.AsDataView
     End Sub
    
    

     

    Ma prima di arrivare a questo devi costruirti un applicazione dati , quindi creare un database , ti consiglio se lo usi su client , quidi un solo utente

    sqlc ompact , qui di seguito la documentazione http://www.microsoft.com/downloads/en/details.aspx?FamilyID=033cfb76-5382-44fb-bc7e-b3c8174832e2

    Creata poi la o le tabelle ed il Dataset , puoi passare alla creazione e utilizzo di query.

     

    Ciao se hai altre domande chiedi tranquillamente

     


    Carmelo La Monica  http://community.visual-basic.it/carmelolamonica/
    mercoledì 25 maggio 2011 21:15
  • Ciao niccolo84,

     

    questo e un esempio di query con linq to dataset , ottimo linguaggio per poter interrogare una tabella di un database,

     

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     Dim query = From tipe In Me.Database1DataSet.Tabella1 _
     Where tipe.Campo1 = TextBox1.Text _
     Select tipe
     Me.Tabella1BindingSource.DataSource = query.AsDataView
     End Sub
    
    

     

    Ma prima di arrivare a questo devi costruirti un applicazione dati , quindi creare un database , ti consiglio se lo usi su client , quidi un solo utente

    sqlc ompact , qui di seguito la documentazione http://www.microsoft.com/downloads/en/details.aspx?FamilyID=033cfb76-5382-44fb-bc7e-b3c8174832e2

    Creata poi la o le tabelle ed il Dataset , puoi passare alla creazione e utilizzo di query.

     

    Ciao se hai altre domande chiedi tranquillamente

     


    Carmelo La Monica  http://community.visual-basic.it/carmelolamonica/

    Ok Carmelo, ricapitolando (scusate se parlo in modo praticone ma sono alle prime armi). Diciamo che il codice che avevo scritto non mi serve a nulla, giusto? devo ricominciare dall'inizio. Devo lavorare sul dataset e solo dopo dedicarmi alle query. ok! Ma, visto che cmq devo importare sempre i dati da un file txt, non riesco a capire come costruire e popolare un dataset partendo da un file di testo.  Con il datagridview ci ero riuscito, anche se alla meno peggio.

    Puoi aiutarmi? Io parto semplicemente da questo file txt con dati separati da tabulazione.. scusami tanto se scrivo come una capra, spero di essermi fatto capire.

    Grazie ancora

    mercoledì 25 maggio 2011 22:15
  • in pratica il codice che hai scritto tu lo puoi usare per leggere dal file txt i valori che devi scrivere nel database.

    quindi ad ogni cicli invece di accodare i dati alla griglia, li devi inserire in una tabella del db.

    Per scrivere in una tabella del db si seguone questi passi:

    1. crei la connessione al db
    2. crei un command su quella connessione, con un command text "insert into ..."
    3. aggiungi i parametri al command con i dati che stai leggendo dal txt ad ogni ciclo
    4. esegui il command

    cioè tipo:

    1. dim cn as new sqlconnection(stringaDiConnessione)
    2. cn.open
    3. DO WHILE .........
    4. dim cmd as new sqlcommand(cn, "insert into miaTabella Campo1, Campo2, Campo3 values(@Campo1, Campo2, Campo3)"
    5. dim parametri(2) as sqlparameter
    6. paramentri(0) = new sqlparameter("@Campo1", ValoreDiCampo1LettoDalTXT)
    7. paramentri(1) = new sqlparameter("@Campo2", ValoreDiCampo2LettoDalTXT)
    8. paramentri(2) = new sqlparameter("@Campo3", ValoreDiCampo3LettoDalTXT)
    9. cmd.parameter.addrange(parametri)
    10. cmd.execnonqyery()
    11. LOOP
    12. cn.close

     

    Dopo che hai fatto questo hai creato il tuo db e i dati sono persistenti, quindi la prossima volta non avrai bisogno di eseguire questa procedura, ma passare direttamente alla prossima dove vai a leggere i dati dalla tabella con le query che vuoi e li mostri in una griglia.

     

    ciao


    Diego Riccardi
    giovedì 26 maggio 2011 07:32