Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - riferimento a un oggetto non impostato su istanza di oggetto
Forum - C# / VB.NET - riferimento a un oggetto non impostato su istanza di oggetto

Avatar
xone2003 (Normal User)
Rookie


Messaggi: 32
Iscritto: 27/11/2008

Segnala al moderatore
Postato alle 19:24
Sabato, 24/01/2009
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!


Codice sorgente - presumibilmente VB.NET

  1. Public Class Detail
  2.  
  3.     Dim objDataAdapter = From riga As DBDatiBiciDataSet.DatiBiciRow In Me.DbDatiBiciDataSet.DatiBici Select riga
  4.     Dim objDataSet As DataSet
  5.     Dim objDataView As DataView
  6.     Dim objCurrencyManager As CurrencyManager
  7.  
  8.  
  9.     Private Sub FillDataSetAndView()
  10.         objDataSet = New DataSet()
  11.         objDataAdapter.fill(objDataSet, "DatiBici")
  12.         objDataView = New DataView(objDataSet.Tables("DatiBici"))
  13.         objCurrencyManager = CType(Me.BindingContext(objDataView), CurrencyManager)
  14.  
  15.     End Sub
  16.  
  17.     Private Sub bindfields()
  18.         'cancello ogni precedente collegamento
  19.         TB_Bike.DataBindings.Clear()
  20.         TB_Cat.DataBindings.Clear()
  21.         TB_Anno.DataBindings.Clear()
  22.         TB_Day.DataBindings.Clear()
  23.         TB_Data.DataBindings.Clear()
  24.         TB_Km.DataBindings.Clear()
  25.         TB_Vmax.DataBindings.Clear()
  26.         TB_Avg.DataBindings.Clear()
  27.         TB_TT.DataBindings.Clear()
  28.         RTB_Partec.DataBindings.Clear()
  29.         RTB_Note.DataBindings.Clear()
  30.         RTB_CondMet.DataBindings.Clear()
  31.         RTB_Descrizione.DataBindings.Clear()
  32.  
  33.         'collego le TextBox ai campi della tabella datibici.
  34.         TB_Bike.DataBindings.Add("Text", objDataView, "Bicicletta")
  35.         TB_Cat.DataBindings.Add("Text", objDataView, "Categoria")
  36.         TB_Anno.DataBindings.Add("Text", objDataView, "Anno")
  37.         TB_Day.DataBindings.Add("Text", objDataView, "Giorno")
  38.         TB_Data.DataBindings.Add("Text", objDataView, "Data")
  39.         TB_Km.DataBindings.Add("Text", objDataView, "Chilometraggio")
  40.         TB_Vmax.DataBindings.Add("Text", objDataView, "VelocitàMax")
  41.         TB_Avg.DataBindings.Add("Text", objDataView, "VelocitàMedia")
  42.         TB_TT.DataBindings.Add("Text", objDataView, "TempoTotale")
  43.         RTB_Partec.DataBindings.Add("Text", objDataView, "Partecipanti")
  44.         RTB_Note.DataBindings.Add("Text", objDataView, "Note")
  45.         RTB_CondMet.DataBindings.Add("Text", objDataView, "CondizioniMeteo")
  46.         RTB_Descrizione.DataBindings.Add("Text", objDataView, "Descrizione")
  47.  
  48.         ToolStripStatusLabel1.Text = "ready"
  49.     End Sub



:d:d

Ultima modifica effettuata da xone2003 il 24/01/2009 alle 19:28
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:09
Domenica, 25/01/2009
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 il 25/01/2009 alle 16:12
PM Quote
Avatar
xone2003 (Normal User)
Rookie


Messaggi: 32
Iscritto: 27/11/2008

Segnala al moderatore
Postato alle 8:52
Martedì, 27/01/2009
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 il 27/01/2009 alle 8:55
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:21
Martedì, 27/01/2009
Codice sorgente - presumibilmente VB.NET

  1. 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.

PM Quote