Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    31

    aiuto

    Salve a tutti o un piccolo problema non riesco a capire il seguente errore


    "" Riferimento a un oggetto non impostato su un'istanza di oggetto ""

    si tratta di una piccola applicazione che consente di salvare nome utente e psw in un file xml




    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim a = TextBox1.Text
    Dim b = TextBox2.Text


    Dim strpath As String = Server.MapPath(Request.ApplicationPath) & "\accesso.xml"

    Try
    Dim ds As New DataSet



    l'errore è nella seguente riga

    Dim riga As DataRow = ds.Tables("users").NewRow



    riga("name") = a
    riga("psw") = b

    ds.Tables("users").Rows().Add(riga)

    ds.WriteXml(strpath)

    Catch ex As Exception

    Response.Write(ex.Message)
    End Try


    end sub

    qualcuno potrebbe testare il codice?





    Questo è il file xml dove vengono memorizzate nome utente e psw

    <?xml version="1.0" encoding="utf-8" ?>

    <users name="" psw="" />

  2. #2
    Hai dichiarato il DataSet ma non l'hai inizializzato!
    Dunque nel momento in cui vai a cercare la tabella"users" al suo interno, per aggiungergli una riga, chiaramente ti dice che non sa a cosa tiriferisci. Prima di tutto questo dovrai creare un DataAdaptrer che andrà a popolare il DataSet tramite uuna connessione OLEDB. una volta popolato il dataset potrai aggiungere una riga...
    non ti posso aiutare con la sintassi del codice perchè io lo faccio in C#, ma la logica è quella che ti ho detto!!! Se hai MSDN cercati Dataset o DataAdapter( reperibile anche sul MSDN del sito della microsoft)
    !!
    Try
    Dim ds As New DataSet



    l'errore è nella seguente riga

    Dim riga As DataRow = ds.Tables("users").NewRow



    riga("name") = a
    riga("psw") = b

    ds.Tables("users").Rows().Add(riga)

    ds.WriteXml(strpath)

    Catch ex As Exception

    Response.Write(ex.Message)
    End Try


    end sub

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Non intitolare i post con "Aiuto", rendi più difficile la ricerca.

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

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2001
    Messaggi
    31
    Grazie JimiHendrix per la risposta ma credo che non mia sia stata molto di aiuto.

    La connessione OLEDB serve a connettermi a un database, invece io vorrei fare una scrittura su un file xml
    quindi è sufficiente dichiarare un dataset, mentre l'adattatore in questo caso non mi serve
    perchè non sto interrogando un database ma appunto mi sto servendo di un file xml per la scrittura di nome utente
    e psw

  5. #5
    Jimi si è sbagliato unicamente per la questione xml/oledb ma il concetto espresso era più che valido.

    Quando vai a creare un dataset e NON lo popoli fosse anche di tabelle vuote, questo pur essendo istanziato rimane VUOTO.

    Di conseguenza quando ne vai a chiamare una table è naturale che ti lanci questa eccezione perchè la table di FATTO non esiste.

    Inoltre anche se vai ad usare un xml, devi sempre fornire dei dati al dataset in modo che questo conosca la struttura del file.

    Per fare questo ci sono delle classi già belle che pronte, reperibili nel System.XML namespace.

    Consiglio anche io di andare su msdn e fare una semplice search con 'dataset xml', troverai tutto il necessario.

    Ci'

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.