E.NewValues....

lunedì 11 febbraio 2008 - 12.16

toniovigi Profilo | Expert

{
Label1.text = e.NewValues[3].tostring();
}

Mi da l'errore dicendo :

Riferimento a un oggetto non impostato su un istanza di oggetto

Questa parte di codice si trova dentro all'evento RowUpdated di una gridview.

Vi dico inoltre che l'errore mi viene dato quando aggiorno\modifico il campo della gridview lasciandolo VUOTO.

Perchè??

grazie

Pongo Profilo | Senior Member

Scusa, ma non è lo stesso problema di prima??

se quel campo non è inizializzato non puoi applicarci nessun metodo e quindi non tornerà nulla quel tostring().

Penso, non ne sono sicurissimo, che il campo text di un label non accetti valore null.

toniovigi Profilo | Expert

ho provato anche a non usare ma mettere un stringa ma nada,

Pongo Profilo | Senior Member

>ho provato anche a non usare ma mettere un stringa ma nada,

Cioè?? Puoi postare il codie della prova che hai fatto?

toniovigi Profilo | Expert

protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{

Label1.text = e.NewValues[2].toString();


}

Quando aggiorno o modifico il campo e in quel campo non cè nulla mi dice : Riferimento a un oggetto non impostato su un istanza

o anche provato a fare

string prova=null;

prova = e.NewValues[2].toString();

Pongo Profilo | Senior Member

>protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs
>e)
> {
>
> Label1.text = e.NewValues[2].toString();
>
>
> }
>
>Quando aggiorno o modifico il campo e in quel campo non cè nulla
>mi dice : Riferimento a un oggetto non impostato su un istanza
>
>o anche provato a fare
>
>string prova=null;
>
>prova = e.NewValues[2].toString();
>
>


Non puoi usare "e.NewValues[2].toString();" a destra di un'assegazione quando il suo valore è null.

"string prova=null" è inutile, non aggiunge nulla di nuovo.

prova a scrivere solamente:

e.NewValues[2].toString();

e vedi che ti dice il compilatore, adesso non ricordo se già qui ti da errore, ma forse no.

Quando tu scrivi prova=........... al posto dei puntini devi avere un valore, e non un "punatore a null".


toniovigi Profilo | Expert

quindi cosa posso mettere per provare?

ho provato a mettere solo

e.NewValues[2].ToString(); ma mi da lo stesso errore

Pongo Profilo | Senior Member

Quando fai l'update inserisci un qualsiasi valore anche " ".

Se devi solo visuliazzare i dati e quindi non hai bisogno di un null reference, potrebbe andare.

Prova così, senza tantio check. Se vedi che può fare al caso tuo fai un check sul campo dati prima di usarlo come stringa:

se punta ad un valora, ok, procedi, se non lo inizializzi con " ".

toniovigi Profilo | Expert

ma cosi tu mi stai dicendo:

quando io apro la mia gridview, e so che un campo deve rimanere vuoto, batto un carattere tipo spazio, cosi la casella rimane sempre vuota..xo cosi nn risolvo, a me serve sapere che se cè un campo vuoto m dice k e vuoto

ho provato cosi:

if(string.IsNullOrEmpty(e.NewValues[2].ToString())) Label1.Text="VUOTO"
else Label1.Text="Piena";

cosi controlla..ma stesso errore su E.newValues[2].toString.

ma come cacchio le recupero sti valori?

Pongo Profilo | Senior Member

Scusa, ma allora perchè usi una label??????????

Al massimo fai un check e poi fai label.text="Il campo pippo è vuoto", ma non puoi usare un null reference per valorizzare quel campo.

Pongo Profilo | Senior Member

Scusa, ma allora perchè usi una label??????????

Al massimo fai un check e poi fai label.text="Il campo pippo è vuoto", ma non puoi usare un null reference per valorizzare quel campo.

Pongo Profilo | Senior Member

Non puoi usare il tostring()!!!!!

Prima controlla se è null refrence. Se non lo è puoi usare il to string.

E' come gli dicessi converti in stringa il nulla.

toniovigi Profilo | Expert

guarda ho messo cosi


protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
if (string.IsNullOrEmpty(e.NewValues[2].ToString())) Label1.Text = "VUOTO";
else Label1.Text = "Piena";

}


sempre stesso problema, se becca il campo vuoto incvece di dirmi vuoto mi dice sempre il solito errore

Pongo Profilo | Senior Member

>guarda ho messo cosi
>
>
>protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs
>e)
> {
>if (IsNullOrEmpty(e.NewValues[2])) Label1.Text
>= "VUOTO";
> else Label1.Text = e.NewValues[2].tostring();
>
> }
>
>
>sempre stesso problema, se becca il campo vuoto incvece di dirmi
>vuoto mi dice sempre il solito errore

Prova così! Non ricordo esattamente la sintassi e non ho qui installata l'ide per provare.

Devi vedere se e.NewValues[2] è null o meno. Se non è nulla puoi usare il tostring.

toniovigi Profilo | Expert

e.NewValues[2] nn è null ma puo anche esserlo.

Se io c scrivo qualcosa dentro lo visualizza, se cancello e lascio la cella vuota, m da l'errore, mi sa che neanke tu sai dirmi il xke...

Pongo Profilo | Senior Member

No, infatti non riesco a spiegarmi.

Ho quetsa cella. OK??

Testo se ha qualche valore.

Se si posso fare il to string, se no non posso farlo.

Tu dai per socntato che sia una stringa e che accetti il tostring mentre in realtà non è così.

Hai visto che ho corretto il tuo codice sopra??

Non puoi fare un tostring prima di sapere se è null reference. Prima testo e poi facico il tostring.

toniovigi Profilo | Expert

if (IsNullOrEmpty nn s puo fare...

Pongo Profilo | Senior Member


INfatto ho premesso che non ricordo il nome dei mtodi da usare.. Prima pepe ti ha consigliato:

if e.newvalues[1] != dbnull.value label2.text=e.newvalues[1].tostring.


Comunque soprati ho descritto l'algoritmo. I metodi trovali tu.

Prendo la cella-> controllo che abbia un valore->

-->Si?? ok, allora posso fare to string
-->no?? non posso fare un'assegnazione usando la cella. Metto io un valore valido!

toniovigi Profilo | Expert

mmmm io se nn vedo esempi pratici vado in palla...e da 2 giorni che sono sopra sto problema e nn c kredo k nn ho risolto

Pongo Profilo | Senior Member

if e.newvalues[2] != dbnull.value label2.text=e.newvalues[2].tostring
else label2.text="pippo"


toniovigi Profilo | Expert

ma sto Dbnull nn esiste!!!!!!!!!!!cosa devo mettere???
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5