Newsgroup: it.comp.lang.visual-basic
Titolo: [.Net] Mi viene da piangere!!!

Scusate lo sfogo ma....
Avevo creato un "bellissimo" Form con i campi collegati ai dati (non ditemi
di non usarli, io li trovo comodissimi!)
E' un classico form di inserimento dati, con un po' di textbox e una bella
barra di navigazione, inserimento, modifica, cancellazione ecc.....
Tutto funzionava alla perfezione.
Poi ho dovuto aggiungere due CheckBox perchè nella tabella ho due campi di
tipo Bit... e da cosa possono essere meglio rappresentati se non da un
checkbox?!?
Ok, checkbox aggiunti, databind impostato. Sembra funzionare tutto
correttamente. Ma appena clicco sul tasto per aggiungere un nuovo record
ecco che i controlli sul form (che prima venivano "svuotati"
automaticamente) restano "sporchi" con i dati attuali.
Cerco su Technet...ed è un BUG documentato.  (326440 - BUG: AddNew Method of
CurrencyManager Fails with Bound CheckBox)
Ok, allora mi dice di impostare un valore di Default per i campi che
dovranno essere collegati ai checkbox. Va bene, lui mi dice di farlo sul
Datatable, ma perchè non farlo direttamente nella tabella del database?
Allora apro Enterprise Manager e imposto il valore di default a 1 per i due
campi di tipo Bit.
Ma nulla cambia. Perchè quando creo un DataTable utilizzando il metodo
DataAdapter.Fill (e dopo aver impostato
DataAdapter.MissingSchemaAction=AddWithKey) la proprietà DefaultValue della
mia colonna nel DataTable vale sempre DBNull. Quindi devo presupporre che ci
sia un altro baco che non imposta correttamente questa proprietà nel
DataTable leggendola dalla struttura della tabella (le altre proprietà
funzionano, per esempio MaxLength dei campi di tipo Testo)
Ma perchè ogni volta che si prova a fare qualcosa di nuovo bisogna sempre
perdere un sacco di tempo per mettere le pezze ai bachi di MS.
Che palleeeee!!!!
Scusate lo sfogo.
Ciao
Skysurfer

 di non usarli, io li trovo comodissimi!)
Comodissimi sì... bacatissimi pure...
Esattamnte come con VB6...
Da retta a me:
Io mi sono fatto un programmino che a partire da una tabella genera:
1) Classe che ne contiene i dati
2) Classe collection tipizzata
3) Classe "filtro" (può filtrare da una collection esistente o dal database)
4) UserControl per la visualizzazione ed eventualmente la modifica
5) UserControl per la visualizzazione della collection (una Listview
"tipizzata")
6) Usercontrol per la ricerca (visualizzazione del filtro)
Ci ho impiegato un bel po' ed ancora oggi sto facendo delle modifiche, ma la
soddisfazione é grande, inoltre genero codice altamente riutilizzabile e
completamente personalizzabile. Per ultimo progetto (35 tabelle correlate)
ho generato qualcosa come 3,5 Mb di codice... Impensabile farlo a mano ogni
volta, così invece... ;)
                    Ciao
                                                                Allanon
--
- SPAMKILLER
 L'indirizzo delle risposte é 
itlangv...@michele.sytes.net
 LASCIATE il NOSPAM fa parte dell'indirizzo :-)
  Per superare le impostazioni di protezione antispam scrivete
  nel testo del messaggio la scritta "SPAMKILLER"
Scusate il disturbo, ma non posso più di pubblicità

CurrencyManager Fails with Bound CheckBox)
Ai tempi di VB4 quando dove lavoravo prima iniziammo lo sviluppo di un
gestionale fummo colpiti dalla facilita' con cui si creavano form con
campi e griglie collegati ai campi di una tabella.
Tutto molto bello ma poco tempo dopo capimmo quanto fosse difficile
gestire casi un po' piu' complessi, nonche' gestire i bug dei vari
componenti "databound".
Morale: ci costruimmo una serie di funzioni/classi per gestire tutto
in unbound, con migliori prestazioni e senza errori "Microsoft bound"
:-)
Il mio approccio con .Net, ricordando la lezione, e' stato uguale:
Ho imparato a gestire grid e compagnia bella manualmente, sia per
"cultura" personale sia perche' mi piace avere il controllo su ogni
aspetto del colloquio "applicazione <-> database". 
Quanto scrivi non fa che confermare la bonta' della mia scelta, tutto
ovviamente rigorosamente IMHO.
Ciao 
Stefano "HappyMan" (Lago Maggiore - NO)
--
http://www.sgr.info
Email happyman69 (at) 
libero.it

 Io mi sono fatto un programmino che a partire da una tabella genera:
Wow.. me lo mandi :-)
A parte gli scherzi, anche io stavo facendo qualcosa di generico per
l'editing delle tabelle e i controlli legati ai dati mi sembravano la
soluzione ideale, soprattutto per gestire lo scorrimento su tutti i record
del datatable.
Comunque il secondo problema (quello che non mi ritrovo nel Datatable le
proprietà della tabella nel DB) non è un problema dei controlli databound.
In qualsiasi "settore" ci si avventura, si trovano sempre bachi... è questo
che mi ha fatto scrivere lo sfogo...
Ciao
Skysurfer

 che mi ha fatto scrivere lo sfogo...
Ti capisco... Se ti capisco... :((((((
Pensa questa: Ho un'applicazione (beh, tante) che usano la serializzazione
SOAP (o binaria) per salvare delle impostazioni e/o dei documenti. Beh, in
azienda siamo in 2 a lavorare con .NET e io l'unico con la beta del 2003.
Per motivi di cooperazione abbiamo il progetto 1/2 con .NET 2002 e 1/2 con
.NET 2003. Beh, i documenti serializzati dall'uno non sono rileggibili
dall'altro (non sempre, ma succede...)
...e questo non é bello! :(
