Newsgroup: it.comp.lang.visual-basic
Titolo: VB.NET - Un esempio per convincere a passare a VB.NET

Obbiettivo: modifica dati in ambiente multiutenza.
1- Aggiungere una Griglia , nome DG.
2- Aggiungere le variabili al modulo di classe della form
    Dim ds As Data.DataSet
    Dim dap As SqlClient.SqlDataAdapter
3- Popolare la Griglia
 Private Sub PopolaGriglia()
            dap = New SqlClient.SqlDataAdapter("SELECT * FROM tblNomi ", db)
            ds = New Data.DataSet()
            If ds.Tables.Contains("Nomi") = True Then
ds.Tables("Nomi").Clear()
            dap.FillSchema(ds, SchemaType.Source, "Nomi")
            dap.Fill(ds, "Nomi")
            'Elimina ultima riga vuota
            ds.Tables(0).DefaultView.AllowNew = False
            'Larghezza intestazioni di riga
            DG.RowHeaderWidth = 60
            DG.DataSource = ds.Tables("Nomi")
    End Sub
4- Aggiungere un pulsante per salvare i dati modificati nella griglia
  Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnUpdate.Click
        Dim cmdBuilder As New SqlClient.SqlCommandBuilder(dap)
        dap.UpdateCommand = cmdBuilder.GetUpdateCommand
        dap.ContinueUpdateOnError = True
        dap.Update(ds, "Nomi")
    End Sub
5- Costruite il file.exe
6- Nello stesso pc. Attivare il file.exe e il proggetto.(due maschere
attivate da due file.exe diversi. Simulazione di proggetto in modalità
multiutenza)
7- Modificate alcuni valori di una riga della griglia della prima form.
Salvare le modifiche.
8- Nella secona form , nella stessa riga della griglia, modificare alcuni
valori , salvare. Si avrà un avviso di errore nell'intestazione della riga:
"Violazione di concorrenza: UpdateCommand ha modificato 0 record"
Con poche righe di codice si riesce a verificare la concorrenza in ambiente
multiutente.
giuseppeD
p.s. Mi vogliono proporre un proggetto in VB6 ed ADO.
Che aggia fà ?

 ha scritto nel messaggio
news:FKVZ9.101403$0v.29...@news1.tin.it...


Ho capito il senso del tuo post. Pero' gia' che cero ho provato anche il
codice cosi' tanto per (ri)mettermi a smanettare con sqlserver e ricevo un
errore quando viene eseguita la riga
dap.UpdateCommand = cmdBuilder.GetUpdateCommand
l'errore e':
dynamic sql generation for the updatecommand is not supported against a
SelectCommand that does not return any key column information.
Saluti
Ric


Ho provato il codice in ambiente multiutente , programma su due pc che
accedono alla stessa fonte dati , e funziona.
Per SqlCommandBuilder , leggo dalla guida:
È inoltre necessario che la proprietà SelectCommand restituisca almeno una
chiave primaria o una colonna univoca. In caso contrario, viene generata
un'eccezione InvalidOperation e i comandi non vengono generati.
Prova a verificare se la tabella ha una chiave primaria.
giuseppeD

sigh... il solito errore e conseguente post da niubbo.
Funzia ed in effetti e' impressionante il risultato nella sua
semplicita'/utilita'
Saluti
Riccardo

 Che aggia fà ?
Accetta di corsa, comprati un OCX di griglia serio, usa Lock e vai
tranquillo con lo stesso numero di righe di codice che useresti in .NET (e
almeno così il lavoro lo prendi di sicuro).
Ciao
*Roby*

 le sanguisughe ?" ,
(snip)
Simpatica questa forma mentale, secondo la quale tutto ciň che č nuovo č meglio,
e le cose diventano obsolete nel momento stesso in cui č pronta la nuova
versione....
Un po' di spirito critico, ogni tanto, non guasta, e rispondere alle domande con
delle frasi fatte č indice di scarsa fantasia.
Per rispondere alla tua metafora, comunque, direi che č il caso, sempre, di
andare da un medico che sappia se, per risolvere il mio problema, č meglio usare
le sanguisughe o la radioterapia, o qualsiasi altra cosa
Salutoni
Sergio
PS. io, nel mio piccolo, studio, utilizzo e in alcuni aspetti apprezzo .net, ma
non mi azzarderei mai ad affermare che chi usa vb6 č fermo alle sanguisughe

 non mi azzarderei mai ad affermare che chi usa vb6 è fermo alle
sanguisughe
Ero partito con l'idea di continuare a programmare in VB6 e nei ritagli
studiare 
VB.NET
.
Ho concluso , per le mie possibilità , che non sarei mai stato capace
(aggiungi il rincorrere le prevedibili modifiche
successive di 
VB.NET
) , di propormi sul mercato a sviluppare , in autonomia
, con la nuova tecnologia.
Presumo che ci sarà un periodo dove VB6 inizierà a perdere fortemente quota.
Presumo che il tempo , dalla diminuzione di interesse di VB6 all'affermarsi
di 
VB.NET
 , non sarà sufficiente alla
conversione.
A quel punto ci si trova con un prodotto superato.
giuseppeD

A quel punto ci si trova con un prodotto superato.
Io ci metterei la firma se diventasse "superato" come il Cobol ;-)
-- 
ciao, hal
che se tornasse indietro studierebbe il cobol

 che se tornasse indietro studierebbe il cobol
finalmente una cosa che so e che non sai :)
temo solo 
cobol.net
 2003 
cobol.net
 2004 
cobol.net
 2005 ...