Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887

    Una domanda sui DataSets...

    Che voi sappiate esiste un modo diretto per riversare un dataset in una tabella ? Mi spiego meglio.
    Leggo i dati da un foglio Excel, e dovrei immagazzinarli in una tabella con opportune colonne (le stesse del foglio excel).
    Fra il file XLS e la Tabella ovviamente c'e' un dataset.
    Sono costretto a ciclare fra le colonne e le righe o esiste un altro modo ?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    se per tabella intendi un DataTable, basta che usi il metodo Fill dell'oggetto DataAdapter.

    es:

    ObjDataAdapter.Fill(ObjDataset, NomeTabella)

    Hey hey, my my Rock and roll can never die!

  3. #3
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    no, per tabella intendo quella del db...

  4. #4
    Originariamente inviato da djciko
    no, per tabella intendo quella del db...
    allora forse non mi e' chiara la domanda iniziale
    esiste un modo diretto per riversare un dataset in una tabella ?
    Il dataset dovresti intenderlo come un contenitore di datatable quindi la domanda cosi posta sembra essere sbagliata. Una datatable puo' esistere anche indipendentemente dal dataset. Ad es. quando non e' necessario utilizzare le funzioni aggiuntive del dataset (vedi datarelations e altro) e serve solo un contenitore disconnesso per i dati di una tabella del db e' possibile utilizzare una singola datatable.
    Detto questo, quando utilizzi un dataadapter per riempire una datatable (con la funzione fill), non e' necessario creare a mano la struttura della datatable (es. le colonne presenti nella tabella del db) visto che e' il dataadapter che lo fa automaticamente. Se poi vuoi aggiungere anche i tipi specifici dei campi e altro puoi utilizzare la funzione fillschema del dataadapter prima di chiamare la funzione fill.
    Argomenti vasti da approfondire.
    Se hai una fonte dati xml, forse puoi utilizzare la classi offerte dal namespace xml del framework (es. xmldocument ecc.).
    Saluti a tutti
    Riccardo

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    Si lo ammetto Riccardo, la mia domanda era un po' ambigua...

    In realtà incontro ancora un po' di difficolta' ad entrare nella commedia creata da MS per quanto riguarda le filosofie del framework riguardo la gestione dei datatables, datasets, dataviews ed altro (provengo da linguaggi di solo scripting come ASP e Perl).

    Mi chiedevo soltanto se esiste un modo per fare una operazione diretta senza passare per queste classi e senza ciclare fra le collections rows e columns del datatable...Ma evidentemente non si
    può.

  6. #6
    Originariamente inviato da djciko
    ...incontro ancora un po' di difficolta' ad entrare nella commedia creata da MS ...esiste un modo per fare una operazione diretta senza passare per queste classi e senza ciclare fra le collections rows e columns del datatable...Ma evidentemente non si
    può.
    Per fortuna che ti sbagli e che probabilmente dici quello che dici proprio perche' non hai ancora approfondito il potere del lato oscuro... emh del framework. La commedia infatti ti permette di scegliere ad esempio contenitori di dati disconnessi come le datatable pieni di ricche funzionalita' built in oppure di creare facilmente classi custom fortemente tipizzate...
    La curva di apprendimento non e' ripida come per asp ma nel medio periodo ti da soddisfazioni.
    Saluti a tutti
    Riccardo

  7. #7
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    beh in effetti non e' che sono proprio a zero, diciamo che ho dato un'occhiata a tutti gli atti della commedia...ma non ne ho approfondito al massimo gli aspetti. Ma sono cosciente di trovarmi di fronte ad una cosa ben fatta. Sai l'impatto da Asp classic e' traumatico, ne sto accusando ancora gli effetti !
    tx,

  8. #8
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Originariamente inviato da djciko
    [cut]

    Mi chiedevo soltanto se esiste un modo per fare una operazione diretta senza passare per queste classi e senza ciclare fra le collections rows e columns del datatable...Ma evidentemente non si
    può.
    Si può fare utilizzando il DataAdapter e in particolare in suo metodo Update.
    Quello che ci devi mettere prima e dopo dipende un po' dalla tua situazione.
    Cercando di essere breve: il metodo Update riceve la DataTable o DataSet e legge i valori dei DataRowState, quindi lo stato delle righe. Ad esempio se lo stato di una riga è Added (quindi è stata aggiunta alla DataTable) eseguirà l'InsertCommand del DataAdapter e inserirà in automatico quella riga sul DB. Fa una cosa analoga per le righe Modified (esegue UpdateCommand), Deleted (DeleteCommand).
    Non è necessario quindi che tu cicli le righe ed esegui per ognuna il comando di Insert, ci pensa il metodo Update del DataAdapter.
    Il discorso poi può diventare complesso, ma questo era per farti capire che si può fare e, per portarti un esempio pratico, se tu volessi leggere dei dati da una tabella e riversarli su un'altra si risolverebbe facilmente con il DataAdapter e con 4-5 righe di codice.

    HTH
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

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 © 2026 vBulletin Solutions, Inc. All rights reserved.