Eseguire un update su delle righe di una tabella di un dataset

lunedì 23 luglio 2007 - 14.12

trinity Profilo | Guru

Ho creato un dataset e al suo interno una tabella con le rispettive chiavi.
Aggiungo dei valori senza alcun problema ma spesso mi capitare che i valori inseriti dovranno essere soggetti ad un aggiornamento, si può eseguire un edit o update della riga di dati in base alle chiavi primarie?

come diciamo se fosse un update di sql in base ad una determinata esigenza devo eseguire un aggiornamento.

se si come?

ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

SSUPERPIPPO Profilo | Guru

>Ho creato un dataset e al suo interno una tabella con le rispettive chiavi.
>Aggiungo dei valori senza alcun problema ma spesso mi capitare che i valori inseriti dovranno essere soggetti ad un >aggiornamento, si può eseguire un edit o update della riga di dati in base alle chiavi primarie?
>come diciamo se fosse un update di sql in base ad una determinata esigenza devo eseguire un aggiornamento.

>se si come?

Crei un array di DataRow contenente l'elenco dei record da modificare in base ad un filtro.
A questo punto cicli tutti i record selezionati e ne modifichi il valore.

Esempio:

' Modifica alcuni record in un DataTable(MyTableName) in base ad un filtro (FieldName=Valore)

' Dichiara un array di DataRow
Dim DtRow() As DataRow

' Crea l'insieme di DataRow contenente tutti i record che rispettano la SELECT impostata
DtRow = DatasetName.Tables("MyTableName").Select("FieldName=Valore")

' Cicla l'insieme di DataRow modificando il valore del campo da modificare (FieldToUpdate)
For Each CurRow As DataRow In DtRow
CurRow.Item("FieldToUpdate")=NewValue
Next

Spero di essere stato sufficientemente chiaro. Se hai dubbi sono a disposizione.

Ciao

Alessandro

trinity Profilo | Guru

ho fatto così:

Dim myrow() As DataRow = Convert_Dati.Select("Data_Partenza Where CodiceAlbergo='" & C59Coll.Item(i).CodAlbergo & "' AND CodiceComAlbergo ='" & C59Coll.Item(i).CodAlbergo & "'")

e quando la eseguo mi dice: Operando mancante dopo il where.
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

SSUPERPIPPO Profilo | Guru

>ho fatto così:

>Dim myrow() As DataRow = Convert_Dati.Select("Data_Partenza Where CodiceAlbergo='" >& C59Coll.Item(i).CodAlbergo & "' AND CodiceComAlbergo ='" & C59Coll.Item(i).CodAlbergo >& "'")

>e quando la eseguo mi dice: Operando mancante dopo il where.

L'errore è nella stringa Select.
Devi solo indicare la condizione (non con clausole Where).
Il formato corretto è il seguente:

...Select("CodiceAlbergo='" & C59Coll.Item(i).CodAlbergo & "' AND CodiceComAlbergo ='" & C59Coll.Item(i).CodAlbergo & "'")

Così dovrebbe funzionare...

Fammi sapere, ciao

Alessandro

trinity Profilo | Guru

in sostanza ho fatto così:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

questo codice da come puoi capire mi serve per scrivere i record che hanno come "stato"=A ossia sono record di persone arrivate e poi quando nel db si trovano i record con "stato"=P ossia partiti deve trovare il codice stato e comune corrispondente all'arrivo e in base e settare la data di partenza, ma non mi funge, ossi me ne prende solo 3 di partenze mentre ce ne sarebbero delle altre.

Puoi darmi una mano?

ciao e grazie
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

SSUPERPIPPO Profilo | Guru

Se non ti dà errori di runtime mi sà che il problema è sulla Select che non è correttamente impostata! Verifica bene che tutti i parametri filtro siano corretti...

Che cos'è questo C59Coll ?

Non è facile aiutarti non avendo la base dati su cui effettuare le opportune verifiche... dovrei avere il quadro completo della situazione.

Se puoi postami qualcosa di più chiaro..

Ale

trinity Profilo | Guru

Allora io devo gestire gli arrivi e le partenze di una serie di alberghi.Allora ho creato una una tabella db in questo modo:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

in sostanza i record sono costituiti da una sola data chiamata data_elaborazione e tu mi dirai come fai a sapere se è un arrivo o un partito? Con la colonna "stato" se c'è scritto A è arrivato P partito.
Poi la colonna ncomp ti dice il numero di persone arrivate o partite.

allora io volevo che nel datset venissero caricati i record arrivati e poi quando trova i record partiti della stessa nazione o comune andasse medinate la select ad editare il campo datapartenza per ovviamente il numero di persone partite.

Se ti serve alòtro fammi sapere

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

SSUPERPIPPO Profilo | Guru

>in sostanza i record sono costituiti da una sola data chiamata data_elaborazione e tu mi dirai come fai a sapere se è un arrivo o un >partito? Con la colonna "stato" se c'è scritto A è arrivato P partito.
>Poi la colonna ncomp ti dice il numero di persone arrivate o partite.

Fin qui mi è chiaro...

>allora io volevo che nel datset venissero caricati i record arrivati e poi quando trova i record partiti della stessa nazione o comune >andasse medinate la select ad editare il campo datapartenza per ovviamente il numero di persone partite.

... qui non so se hai scritto in fretta ma non ci ho davvero capito niente!

Se puoi spiegarti meglio provo ad aiutarti.

Ciao

Ale

trinity Profilo | Guru

ma in sostanza il problema è quello che ti ho citato sulla prima parte dell'ultimo mio post, all'inizio speravo di fare tutto con una stored sql in modo tale da creare una tabella temporanea e buttarci dentro i dati già selezionati, ma non ci sono riuscito.
Allora ho pensato di fare così leggo tutta la tabella in base a determinati criteri e carico i dati nel dataset ovviamente ho creto nella tabella del datset due campi uno chiamato data_arrivo ed un data_partenza. in base al tipo di stato (A o P) e in base al numero di componenti io vado prima a salvare gli arrivati, poi se il successivo record è un partito passo alla select del dataset che mi dovrebbe prendere i record che dico in in base ai criteri passati e settare a questo punto la data di partenza, insomma ecco un esempio:

nella tabella del db archivio_mov gli utenti possono scrivere in due modi, dipende da come gli gira in sostanza...

esempio supponiamo che abbiamo tre italiani che arrivano da roma, l'utente può scrivere così:

codalb codcomalb data_elaborazione stato ncomp codstato codcomune
0002 60071 22/06/2007 A 1 0 58
0002 60071 22/06/2007 A 1 0 58
0002 60071 22/06/2007 A 1 0 58

oppure

codalb codcomalb data_elaborazione stato ncomp codstato codcomune
0002 60071 22/06/2007 A 3 0 58


-------------------------------------------------------------------------------------------
poi successivamente le partenze possono essere così per esempio:


codalb codcomalb data_elaborazione stato ncomp codstato codcomune
0002 60071 23/06/2007 P 2 0 58
0002 60071 24/06/2007 P 1 0 58

oppure

codalb codcomalb data_elaborazione stato ncomp codstato codcomune
0002 60071 23/06/2007 P 1 0 58
0002 60071 23/06/2007 P 1 0 58
0002 60071 24/06/2007 P 1 0 58

oppure

codalb codcomalb data_elaborazione stato ncomp codstato codcomune
0002 60071 23/06/2007 P 1 0 58
0002 60071 24/06/2007 P 1 0 58

in quest'ultimo caso uno di roma del 22 resta in albergo.




il risultato giusto che mi deve uscire nei primi due casi è

nel caso che ti indicato il risultato giusto doveva essere il seguente:


codalb codcomalb data_arrivo data_partenza codstato codcomune
0002 60071 22/06/2007 23/06/2007 0 58
0002 60071 22/06/2007 23/06/2007 0 58
0002 60071 22/06/2007 24/06/2007 0 58


mentre mentre nel terzo che resta ancora una persona in albergo deve essere:

codalb codcomalb data_arrivo data_partenza codstato codcomune
0002 60071 22/06/2007 23/06/2007 0 58
0002 60071 22/06/2007 24/06/2007 0 58
0002 60071 22/06/2007 0 58


ecco le situazioni che possono accadere
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5