Oppure

Loading
24/01/09 18:24
xone2003
Rieccomi...

nella soluzione che pian piano sto creando ho pensato di creare una form per sfogliare tramite diverse text box e pulsanti previuos, next..ecc.. i dati di un database.

Ovviamente sto seguendo anche le indicazioni di una guida cartacea, che però utilizza query sql e quindi sqlconnection ecc..

magari sto dicendo una fesseria, però mi è più comodo usare linq e quindi non avendo bisogno di impostare nessuna connessione ecco il problema che viene al dunque.

scrivendo il codice sottostante ed eseguendo il debug esce l'errore di cui al topic e non viene caricata la form; dopo alcune prove ho scoperto che la riga che genera l'errore è quella del "dim objdataAdapter = From ..." che contiene in pratica la qry.

Non trovo soluzione al problema e sicuramente per un esperto è una sciocchezza!


Public Class Detail

    Dim objDataAdapter = From riga As DBDatiBiciDataSet.DatiBiciRow In Me.DbDatiBiciDataSet.DatiBici Select riga
    Dim objDataSet As DataSet
    Dim objDataView As DataView
    Dim objCurrencyManager As CurrencyManager


    Private Sub FillDataSetAndView()
        objDataSet = New DataSet()
        objDataAdapter.fill(objDataSet, "DatiBici")
        objDataView = New DataView(objDataSet.Tables("DatiBici"))
        objCurrencyManager = CType(Me.BindingContext(objDataView), CurrencyManager)

    End Sub

    Private Sub bindfields()
        'cancello ogni precedente collegamento
        TB_Bike.DataBindings.Clear()
        TB_Cat.DataBindings.Clear()
        TB_Anno.DataBindings.Clear()
        TB_Day.DataBindings.Clear()
        TB_Data.DataBindings.Clear()
        TB_Km.DataBindings.Clear()
        TB_Vmax.DataBindings.Clear()
        TB_Avg.DataBindings.Clear()
        TB_TT.DataBindings.Clear()
        RTB_Partec.DataBindings.Clear()
        RTB_Note.DataBindings.Clear()
        RTB_CondMet.DataBindings.Clear()
        RTB_Descrizione.DataBindings.Clear()

        'collego le TextBox ai campi della tabella datibici.
        TB_Bike.DataBindings.Add("Text", objDataView, "Bicicletta")
        TB_Cat.DataBindings.Add("Text", objDataView, "Categoria")
        TB_Anno.DataBindings.Add("Text", objDataView, "Anno")
        TB_Day.DataBindings.Add("Text", objDataView, "Giorno")
        TB_Data.DataBindings.Add("Text", objDataView, "Data")
        TB_Km.DataBindings.Add("Text", objDataView, "Chilometraggio")
        TB_Vmax.DataBindings.Add("Text", objDataView, "VelocitàMax")
        TB_Avg.DataBindings.Add("Text", objDataView, "VelocitàMedia")
        TB_TT.DataBindings.Add("Text", objDataView, "TempoTotale")
        RTB_Partec.DataBindings.Add("Text", objDataView, "Partecipanti")
        RTB_Note.DataBindings.Add("Text", objDataView, "Note")
        RTB_CondMet.DataBindings.Add("Text", objDataView, "CondizioniMeteo")
        RTB_Descrizione.DataBindings.Add("Text", objDataView, "Descrizione")

        ToolStripStatusLabel1.Text = "ready"
    End Sub


:d:d
Ultima modifica effettuata da xone2003 24/01/09 18:28
aaa
25/01/09 15:09
Il Totem
Il codice presente nelle inizializzazioni in-line, ossia quelle del tipo "Dim X As Y = Z" viene eseguito anche prima di New, quindi quando gli oggetti ivi referenziati non esistono ancora. Sposta il codice alla fine del tuo metodo di caricamento.
Il tuo objDataAdapter è una collezione di record e non un DataAdapter (per quanto il nome che tu stesso hai scelto possa ingannarti), quindi non possiede il metodo Fill.
Ultima modifica effettuata da Il Totem 25/01/09 15:12
aaa
27/01/09 7:52
xone2003
Chiaramente non ne vengo a capo!
credo di aver capito a proposito del TableAdaper che rappresenta un metodo e non un insieme di valori.
il fatto dello spostare dopo non ho idea ne di cosa e ne di dove!
Vorrei evitare di usare l'sqlconnection primo perchè non ne so assolutamente niente e secondo perchè dato che posso gestire le tabelle caricandole nella form, come ho fatto per il resto del codice, mi appare più "semplice" (parolona, dato faccio fatica cmq).
Vorrei creare una query (modificabile) ed attribuire il risultato in una nuova tabella "volante" così da poter prendere i valori di riga da far scorrere nelle textBox.

Alla fine mi serve capire esattamente come da codice creare un tableadapter con una qry in linq e come gestire il risultato della qry!serve un dataset nuovo?serve un dataview o una table?
La "logica" vedendo il funzionamento delle form mi dice che serve un dataset che contiene un tableadapter e una tabella...
A richiamare quanto precaricato nella form col tempo ci arrivo ma creare un ambiente che contenga il risultato di una qry per poter gestire i dati è un altro paio di maniche...
purtroppo non riesco a trovare niente al riguardo se non i soliti esempi con base SqlConnection.

Alla fine di questo romanzo, mi scuso e rimango in panne perchè non ho idea di come fare.
:-?

grazie comunque

:(:(
Ultima modifica effettuata da xone2003 27/01/09 7:55
aaa
27/01/09 16:21
Il Totem
Dim objDataAdapter = From riga As DBDatiBiciDataSet.DatiBiciRow In Me.DbDatiBiciDataSet.DatiBici Select riga 

Se questo dà un errore di NullReferenceException, significa che c'è una variabile uguale a Nothing. objdataAdapter lo è per forza, dato che deve essere ancora impostata, perciò l'unico oggetto che può produrre questo errore è DBDatiBiciDataSet (od eventualmente DatiBici). Ossia non hai ancora né creato (ossia inizializzato), né tanto meno riempito, il DataSet (o il DataTable). Più di questo non so dirti: dovresti rintracciare tu la parte di codice che manca.
aaa