Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Metodo find su dataset [vb.net]
giovedì 16 febbraio 2006 - 09.23
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ShinsuMagister
Profilo
| Newbie
3
messaggi | Data Invio:
gio 16 feb 2006 - 09:23
Ciao a tutti,
ho un problemino con un find su un dataset...
popolo la tabella del dataset con i dati di "miatabella" dal database che ha una sola tabella con due colonne (colonnaID che è la chiave primaria e primacolonna di tipo String)
Dim mioDS As DataSet
Dim mioDA As OleDbDataAdapter
Dim myRow As DataRow
Dim mySelez as Integer
mioDA = New OleDbDataAdapter("SELECT * FROM miatabella ORDER BY primacolonna ASC", stringaConnessione)
mioDS = New DataSet("primatabella")
mioDA.Fill(mioDS, "MIATABELLA")
mySelez = 4
creo primarykey per usare metodo find e posizionarmi sulla riga giusta (quella con colonnaID=4)
mioDS.Tables("MIATABELLA").PrimaryKey = New DataColumn() {mioDS.Tables("MIATABELLA").Columns("colonnaID")}
myRow = mioDS.Tables("MIATABELLA").Rows.Find(mySelez)
modifico una colonna e salvo
myRow("primacolonna") = "nuovo nome"
Dim mioCMD As OleDbCommandBuilder = New OleDbCommandBuilder(mioDA)
mioDA.Update(mioDS, "MIATABELLA")
Tutto ok... o almeno così sembra, ma se a questo punto dichiaro un nuovo DATAROW per aggiungere una nuova riga ottengo il messaggio di errore " La colonna 'colonnaID' non accetta valori null."
Dim salvaR As DataRow
salvaR = mioDS.Tables("MIATABELLA").NewRow()
salvaR("primacolonna") = "ciao ciao"
mioDS.Tables("MIATABELLA").Rows.Add(salvaR)
Morale della favola:
Se non definisco la primarykey mi funziona il salvataggio della nuova riga e non funziona più il find, quindi non so come modificare una riga esistente.
Se lascio la primarykey funziona la modifica ma da errore sull'aggiunta di una riga.
Un aiutino? Ciao a tutti e grazie
totti240282
Profilo
| Guru
1.574
messaggi | Data Invio:
gio 16 feb 2006 - 09:34
la primary key da te definita si autoincrementa (contatore) oppure il valore lo devi mettere tu ???
C'è solo un capitano !!!!!!
ShinsuMagister
Profilo
| Newbie
3
messaggi | Data Invio:
gio 16 feb 2006 - 09:46
La primarykey del database è un campo di tipo contatore (parliamo di Datatbase Access) quindi si autoincrementa.
ShinsuMagister
Profilo
| Newbie
3
messaggi | Data Invio:
gio 16 feb 2006 - 11:30
Forse ho risolto "da solo" leggendo questo tutorial....
http://it.gotdotnet.com/quickstart/howto/doc/adoplus/UpdateDataFromDB.aspx
dove dice...
' Set the MissingSchemaAction property to AddWithKey because Fill will not cause primary
' key & unique key information to be retrieved unless AddWithKey is specified.
mySqlDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
infatti ho aggiunto
mioDA..MissingSchemaAction = MissingSchemaAction.AddWithKey
prima di fare il .fill e non da più errore ed ho eliminato la dichiarazione della primarykey prima di effettuare il find
Sia l'inserimento sia l'update sembra funzionino correttamente.
Un saluto
Torna su
Stanze Forum
Elenco Threads
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 !