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
Salvare le modifiche di un dataset in un database
venerdì 04 maggio 2007 - 10.36
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
neuromante65
Profilo
| Newbie
8
messaggi | Data Invio:
ven 4 mag 2007 - 10:36
Sto studiando VB.NET 2005 ed in particolare mi sto concentrando sull' accesso ai DB.
Ho una tabella di access che contiene per ogni riga un Nome, un Cognome ed una Login ed un campo Password che di default è vuoto perchè lo voglio valorizzare successivamente con una applicazione VB.NET che accede al db, calcola una password casuale alfanumerica per ogni riga e risalva i dati aggiornati nel db; quello che non riesco ancora a far funzionare e salvare le modifiche operate sul dataset all'interno del file di access; il codice associato ad un tasto che esegue l'operazione è il seguente:
Dim conn As New OleDbConnection
conn.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source = C:\ListaUtenti.mdb"
conn.Open()
Dim MaxRows As Integer
Dim i As Integer
Dim ds As New DataSet
Dim da As OleDbDataAdapter
Dim sql As String
sql = "SELECT * FROM LoginTable"
da = New OleDbDataAdapter(sql, conn)
da.Fill(ds, "dsLoginTable")
conn.Close()
MaxRows = ds.Tables("dsLoginTable").Rows.Count
For i = 0 To MaxRows - 1
ds.Tables("dsLoginTable").Rows(i).Item(4) = PassGenerator(8)
Next
DBGrid.DataSource = ds.Tables(0)
Dim cb As New OleDbCommandBuilder(da)
da.Update(ds,("dsLoginTable")
Passgenerator è una funzione che richiamo ogni volta che voglio generare la mia password di 8 caratteri.
MI sono basato su:
http://msdn2.microsoft.com/it-it/library/xzb1zw3x
(VS.80).aspx
per la procedura di aggiornamento; il dataset viene correttamente aggiornato ma il db no, l'errore segnalato è:
ERRORE DI SINTASSI NELL'ISTRUZIONE UPDATE
LIstaUtenti.mdb è composto da 4 tabelle, quella interessata è la LoginTable che non ha chiave primaria ma da quello che ho letto non dovrebbe essere indispensabile, la LoginTable è una tabella "solitaria" non ha vincoli di JOIN con altre tabelle.
Qualche suggerimento?
Grazie
the_follet
Profilo
| Newbie
46
messaggi | Data Invio:
dom 6 mag 2007 - 12:29
Ciao Neuro
Stai usando un commandbuilder per le operazioni di update, ma non hai indicato al dataadapter QUALI sono i vari comandi per le operazioni specifiche di UPDATE, INSERT e DELETE.
Dopo la dichiarazione del commandbuilder devi aggiungere le seguenti istruzioni (per il tuo scopo basterebbe anche solo updatecommand):
da.UpdateCommand = cb.GetUpdateCommand
da.DeleteCommand = cb.GetDeleteCommand
da.InsertCommand = cb.GetInsertCommand
Così dovrebbe essere tutto a posto, prova e fammi sapere
Luca
neuromante65
Profilo
| Newbie
8
messaggi | Data Invio:
dom 6 mag 2007 - 20:51
Ti ringrazio per il reply :)
Si hai ragione nel copia incolla ho omesso le istruzioni che mi segnali e con le quali il problema persiste....sai qual'è stata la soluzione? cambiare il nome del campo PASSWORD in PWD, a quanto pare Access non gradisce molto un nome simile :)
adesso funziona tutto.
the_follet
Profilo
| Newbie
46
messaggi | Data Invio:
dom 6 mag 2007 - 21:30
Ahahahahah, giusto, non mi ero accorto del campo PASSWORD
Tempo fa sono impazzito per lo stesso motivo tentando di utilizzare un campo "Note"...
Non avevo idea che anche quella fosse una parola riservata... chi se lo aspettava?...
Cmq mi fa piacere che abbia risolto
Saluti.
Luca
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 !