Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    87

    [vb.net] passaggio dati txt a dbsql

    ciao a tutti!!!!
    ho un piccolo problema ho salvato dei dati in un file di testo in questa sequenza: nome||cognome||indirizzo||etc||
    leggo il file di testo riga per riga, faccio lo split con i caratteri || e mi divido i campi mettendoli in un array.
    la mia domanda è come faccio a caricare i dati dell'array direttamente il un db sql? ho un sqldataadapter, un data set collegato alla tabella e un datagrid collegato al dataset.
    avevo pensato di caricare i dati nel datagrid e fare l'upload delle righe.
    non ci riesco, potete aiutarmi o consigliarmi un'altra strada?casomai con qualche esempio.
    grazie

  2. #2
    Quale database stai parlando?
    Access? SQL Server? Postgre SQL? MySQL?

    In caso di access o simili credo basti semplicemente aprire le connessioni ADO e inserire i dati normalmente

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465

    Re: [vb.net] passaggio dati txt a dbsql

    Originariamente inviato da roky79
    la mia domanda è come faccio a caricare i dati dell'array direttamente il un db sql? ho un sqldataadapter, un data set collegato alla tabella e un datagrid collegato al dataset.
    avevo pensato di caricare i dati nel datagrid e fare l'upload delle righe.
    Se hai un DataSet già configurato con i dati della tabella sorgente, sarebbe sufficiente aggiungere le righe relative ai nuovi dati da inserire e utilizzare il metodo Update dell'oggetto SqlDataAdapter passando il DataSet come parametro; in questo modo, l'oggetto invia al server SQL gli statement necessari a sincronizzare la base dati con le operazioni eseguite sul DataSet.

    Il "non ci riesco" è piuttosto generico: cosa vuol dire? il tuo codice restituisce un errore? non ottieni il risultato voluto? Qual è il problema che riscontri?

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    87
    ciao scusate per il ritardo nella risposta!!!
    il db che utilizzo è una versione lite di msde!!!
    il non ci riesco è riferito al fatto che so prendere i dati dal file di testo ma non so come inserirli nel dataset per fare l'update.
    come faccio a riempire il dataset utilizzando le variabili che contegono i dati del txt?
    avete qualche esempio?
    grazie

  5. #5
    dunque se ho capito bene potresti procedere in questo modo:

    dopo aver caicato e diviso il file di testo in un array potresti utilizzare un ciclo per caricare i dati. Ecco un semplice esempio:
    Premetto che non ho ancora ben capito che tipo di database utilizzi e che codice usi per connetterti ad esso ti faccio quindi un esempio usando un database Access con accesso tramite DAO

    codice:
    Dim m As Integer
    For i = 0 to Ubound(ArrOttenuto)
     If m mod 4 = 0 then m = 0
      DB.addnew
      DB.fileds(m).value = ArrOttenuto(i)
    Next
    Non ho avuto tempo di testarla e sicuramente richiede parecchie modifiche per adattarla alle tue esigenze.
    Fammi sapere se ti è stata utile,se ti server aiuto per cpire quello che ho scritto, o se quello che ti serve è tutt'altra cosa.

    Alla prossima

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    87
    ciao sto cercando di adattare i tuoi codici al mio programma, non sono esperto, vorrei sapere cos'e quel "mod" che hai inserito e perchè 4?
    poi nell'array ho i campi divisi ti faccio un esempio cosi si capisce meglio:

    arr(1) arr(2) arr(3) ...
    nome cognome indirizzo ...

    vorrei inserire questi valori nel dataset nei campi giusti e fare l'update, non utilizzo access, diciamo MSSQL SERVER, i connetto con un sqldataadapter e un normale dataset
    come carico i dati nel dataset, non riesco ad utilizzare i tuoi codici.

    grazie

  7. #7
    Per prima cosa chiedo scusa perchè mi accorgo di aver sbagliato una cosa nel codice che tio ho dato che spero di aver corretto bene in quello qui sotto riportato.
    Poi, l'operatore mod serve per calcolare il resto di una divisione. Lo ho inserito perchè ho presupporsto che i campi della tabela fossero 4 e ottimizzare la scrittura del codice. Ora cercherò di spiegarti cosa ho fatto:

    codice:
    Dim m As Integer
    Dim numCampi As integer 
     
    RS.AddNew
    For i = 0 to Ubound(ArrOttenuto)
     If m mod numCampi = 0 then 
       m = 0
      RS.addnew
     End If
      RS.fileds(m).value = ArrOttenuto(i)
     m = m + 1
    Next
    Allora partimao dal ciclo For:
    Questo ciclo faraà scorrere uno per volta tutti gli elementi del tuo array che hai ottenuto facendo lo split del file di testo.

    Nella prima riga del ciclo faccio un controllo per verificare a che campo, nel database, siamo giunti. Se siamo arrivati all'ultimo campo ( e quindi l'indice dell'ultimo campo diviso il numero dei campi totali da resto zero) ritorniamo al primo campo del database (campo 0). nel caso si verifichi qeusta condizione, nella riga successiva aggiungo una riga nella tabella del Database. Questa è la scrittura per un database aperto con DAO o ADO, utilizza la funzione per aggiungere un record alla tabella supportata dal motore che utilizzi.

    Nell'ultima riga incomincio a riempire il primo campo della riga. Il cicol ricomincierà fino a che verranno riempiti tutti i campi della riga. A questo punto m verrà azzerato e verrà aggiunta una nuova riga. Così via fino al termine dell'array.

    Spero di essere stato chiaro e sportattutto di averti passoto del codice corretto. Purtroppo non ho il tempo di testarlo momentaneamente. Fammi sapere se hai problemi.

    Alla prossima

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.