29 messaggi dal 07 settembre 2006
Ciao a tutti,

ho creato le mie tabelle sul db (SQL server 2000)...

ho creato in APP_CODE un DataSet, dove ho creato i vari TableAdapter e relative query...

nella mia pagina ho poi messo un ObjectDataSource collegato ad uno dei TableAdapter precedentemente creati... poi una GridView per visualizzare i dati... e fin qui tutto ok..

poi ho aggiunto una DetailsView per inserire e modificare i dati... ma al momento dell'insert se non ho compilato tutti i campi (ho semplicemente alcuni campi di testo e alcuni campi booleani) la pagina mi restituisce un errore nella classe autogenerata che rappresenta il mio DataSet (quindi penso sia inaccessibile a me)... l'eccezione (NullArgumentException) dice che uno dei paramtri di testo non può essere NULL e si vede la parte di codice dove la classe autogenerata e che rappresenta il DataSet va a fare il controllo se quel parametro è NULL... il problema è che non dovrebbe essere NULL, ho impostato correttamente tutti i boundfield in modo che se sono vuoti non restituiscano un valore nullo e l'ho verificato mettendomi in debug nell'evento inserting del DetailsView... ho anche impostato i campi del TableAdapter, dal designer di VS2008 nella properties window, ho settato DefaultValue a vuoto (di default c'era la dicitura "<DBNull>", non so se esiste una dicitura particolare per settare una stringa vuota) ma niente stesso errore, ho provato anche con uno spazio ma sempre lo stesso risultato... per lui viene passato un valore NULL alla query di insert.

...ah dimenticavo che tutti i campi delle mie tabelle non accettano valori nulli, di default uso stringa vuota per i valori varchar, forse è questo il problema, cioè se non setto un valore di default per lui non è stringa vuota ma è null!?

Grazie in anticipo

EDIT:
...aggiungo che io di solito mettevo un SQLDataSource nella pagina e lo configuravo e tutto funzionava... poi ho visto questo video http://www.asp.net/learn/3.5-videos/video-362.aspx (molto interessante, consiglio la visione) e ho scoperto la possibilità di creare dei file DataSet e configurare li dentro tutte le operazioni... mi sembrava un cosa un po più corretta e più elegante ma poi è saltato fuori questo errore che mi sta facendo impazzire.

Grazie, spero che qualcuno riesca ad aiutarmi a capire dove sta il problema
Modificato da ZetaSharp il 21 novembre 2008 14.28 -
provato a impostare ConvertEmptyStringToNull a false su i vari Parameter?

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
29 messaggi dal 07 settembre 2006
Ciao Marco

...intanto grazie per la risposta... ma è proprio quello che ho fatto... ho messo quella proprietà nei BoundField e poi con un breakpoint nell'evento inserting della DV ho verificato che il valore restituito sia una stringa vuota ed è proprio così... quindi a questo punto penso che il problema stia nel file del DataSet.

...con i valori booleani (BIT sul db) non mi da nessun errore... potrei risolvere compilando sempre tutti i campi (ma non è corretto) oppure impostando sul db che le colonne di testo accettino NULL (ma non mi piace molto)...


Modificato da ZetaSharp il 21 novembre 2008 14.45 -
29 messaggi dal 07 settembre 2006
RISOLTO... a forza di smanettare mi sono accorto che nell'objectdatasource nella pagina si può accedere ai vari parmater della funzione di insert... a anche qui c'è la proprietà ConvertEmptyStringToNull da impostare a false... io impostavo solo quella dei BoundFiled che rappresentavano la struttura del DetailsView...

...grazie Marco, credo che era proprio quello che mi consigliavi di fare ma non avevo capito che era riferito ai Parameter del datasource...

...vabbè alla fine ho risolto per fortuna
Modificato da ZetaSharp il 22 novembre 2008 16.02 -
si era quello :D che intendevo dicendo "i vari Parameter"

l'importante è risolvere :D

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
165 messaggi dal 10 aprile 2001
B.Giorno;
io non uso ObjectDataSource: uso AccessDataSource, ma ho lo stesso problema.
Ho provato a mettere tutti i "campi selezionati" a ConvertEmptyStringToNull a False, ma l'errore persiste.
Qualche buon anima che ha idee da suggerirmi a riguardo, please?
Grazie in anticipo per l'attenzione.
165 messaggi dal 10 aprile 2001
System.Data.OleDb.OleDbException: Nessun valore specificato per alcuni parametri necessari.
Questo è l'errore che ricevo.
In Modifica funziona. In Eliminazione funziona. In Aggiunta no!
Inoltre qualcuno sa dirmi come posso fare il debug di questa cosa? Essendo oggetto di Visual Web Developer non riesco proprio a trovare dove è il codice da debbugare.

p.s. uso un AccessDataSource (db in Access in cui il campo chiave è un contatore...)
Modificato da robycave il 09 dicembre 2008 17.03 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.