Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    NullReferenceException non è stata gestita dal codice utente

    Ciao a tutti,

    Scusate per l'eventuale banalità della domanda, sono un principiante con asp.net. Sto realizzando un progetto in C#, che prevede di mandare in output su una gridview una serie di dati presi da un db SQL:

    string DB_CONNECTION = "Data Source=(local);User Id=user;Password=pwd;Initial Catalog=DB_ANAGRAFICA";
    SqlConnection conn = new SqlConnection(DB_CONNECTION);
    SqlCommand cmd = new SqlCommand();
    SqlDataReader dataReader;
    conn.Open();
    cmd.Connection = conn;
    cmd.CommandText = "SELECT Id,Nome,Cognome,Recapito FROM Anagrafica";
    dataReader = cmd.ExecuteReader();
    GridView grid1 = new GridView();
    grid1.DataSource = dataReader;
    grid1.DataBind();
    Fin qui nessun problema. Vorrei ora che, cliccando su una riga, i singoli valori vengano inseriti dentro delle Textbox (se Id è 1, nella textbox TbId deve comparire il valore 1, se il nome è Gianni deve comparire dentro TbNome ecc...). Ho fatto una prova aggiungendo la segente riga:

    TbNome.Text = Convert.ToString(grid1.SelectedRow.Cells[1].Text);
    E viene generata l'eccezione:

    System.NullReferenceException non è stata gestita dal codice utente
    Message="Riferimento a un oggetto non impostato su un'istanza di oggetto."

    eppure anche istanziando sia la gridview che la textbox ottengo un valore nullo (nel codice quotato non c'è l'istanza della textbox, ma avevo tentato anche così).

    Sapete come posso risolverla?

    Grazie in anticipo per l'aiuto !!!

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    non ho ben capito.
    le textbox sono scolpite nell'html ?

  3. #3
    Ciao, si le textbox (e anche la gridview) le ho scolpite nella pagina html. Ho fatto un'altra prova e ho visto che non serve istanziare la gridview, l'errore è sempre lo stesso.

    Avevo fatto così perché mi era comparsa un'eccezione simile a quella del titolo, cercando in rete ho visto che si poteva risolverla facendo l'istanza degli elementi.

    L'errore viene dato sull'ultima riga:

    TbNome.Text = Convert.ToString(grid1.SelectedRow.Cells[1].Text);
    E' lì che si blocca Visual studio, però non riesco a capire perché. Ti posto il codice mancante:

    <div style="height:400px; width:500px; overflow:auto;"> <asp:Gridview ID="grid1" runat="server"></asp:Gridview> </div>
    <asp:TextBox runat="server" ID="TbId"></asp:TextBox>
    <asp:TextBox runat="server" ID="TbNome"></asp:TextBox>
    <asp:TextBox runat="server" ID="TbCognome"></asp:TextBox>
    Grazie ancora.

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    L'unico dubbio che mi viene e' che <SelectedRow> sia Nothing.
    In quale evento scrivi questa istruzione ?

    Poi, perche' scrivi:
    codice:
    GridView grid1 = new GridView();
    ...quando la grid e' gia' istanziata nell'HTML ? Questa e' una NUOVA istanza..

    Nel code-behind non devi istanziare nulla che sia scolpito nell'HTML, provvede VS a dimensionarti in un'area le variabili che servono (con modificatore Protected WithEvents).

  5. #5
    In effetti SelectedRow è null, cosa dovrei fare? Devo settare qualche proprietà della gridview? Ho tolto tutte le nuove istanze dal code-behind ma il problema rimane.

  6. #6
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    In quale evento prendi la selectedRow ?

    Se e' null significa che la riga non e' selezionata.

    un esempio per lavorare sulla riga selezionata nel GV:
    codice:
    <asp:gridview id=gv autogenerateselectbutton="True" .....  />
    
    
    Protected Sub gv_SelectedIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSelectEventArgs) Handles gv.SelectedIndexChanging
            Dim row As GridViewRow = gv.Rows(e.NewSelectedIndex)
    End Sub

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.