Aggiornamaneto db

giovedì 06 febbraio 2014 - 17.09
Tag Elenco Tags  VB.NET

pedro8a Profilo | Junior Member

Ciao a tutti,
ho un db access da cui recupero i dati da una taballa.

Poi con questo codice cerco di aggiungere una riga:

Dim Row As DataRow = ds.Tables("test").NewRow
Row(1) = "ddd"
Row(2) = "qqqqq"
ds.Tables("test").Rows.Add(Row)

da.Update(ds, "test")

mi dice update richiede un insertcommand valido...

Quello che voglio fare è:
- in un form di inserimento dati permetto all'utente di aggiungere nuove righe.
Quindi l'utente aggiunge righe, solo quando preme il tasto salva, vengono riportate le righe del datagrid sul db.

________________________
Pedro8a
Sviluppo per passione

AntCiar Profilo | Expert

Ciao.

I problemi possono essere 2:


1- Nel DataAdapter relativo al tuo dataset non sono effettivamente configurate bene le istruzioni di insert, update e delete. (se hai fatto tutto da wizard la cosa è strana)

2 - quando aggiungi una nuova riga fai

Dim Row As DataRow = ds.Tables("test").NewRow
Row(1) = "ddd"
Row(2) = "qqqqq"
ds.Tables("test").Rows.Add(Row)

la cosa strana è che non metti nessun valore nella row(0) e l'errore potrebbe stare proprio nel fatto che non valorizzi tutti i campi (tranne se poi questo campo non è autoincrementale)

Cristian Barca

pedro8a Profilo | Junior Member

Non ho utilizzato wizard, ecco il codice per popolare il datagrid:
StrSql = "Select * from Tabella1"
Cn.Open()
da = New OleDb.OleDbDataAdapter(StrSql, Cn)
da.Fill(ds, "Test")
Cn.close
DataGridView1.DataSource = ds.Tables("test")


ovviamente da e ds sono variabili pubbliche

________________________
Pedro8a
Sviluppo per passione

AntCiar Profilo | Expert

ok. Allora si spiega tutto.

E' normale che quando fai ds.Update(.....) ti da errore.

Il metodo Update del dataset non fa altro che scorrere la tabella che ci passi e valutare il RowState di ogni singola riga. A seconda del RowState intraprende una azione a database.
Per fare questo però deve sapere bene la struttura della tua tabella. Per la precisione occorre che devono essere valorizzate le istruzioni per l'insert, l'update e il delete.

Puoi dare una occhiata qui per impostarti le tue istruzioni di Insert,Update e Delete.


http://msdn.microsoft.com/it-it/library/system.data.common.dataadapter.update%28v=vs.110%29.aspx

http://msdn.microsoft.com/it-it/library/tf579hcz%28v=vs.110%29.aspx

http://msdn.microsoft.com/it-it/library/bbw6zyha%28v=vs.110%29.aspx
Cristian Barca

pedro8a Profilo | Junior Member

perfetto, leggo...
Anche se ho 2/3 dubbi:
1- se apro il form di inserimento, come recupero la sola struttura della tabella?
2- potrei iterare sulle righe del datagrid che ho riempito a manina, con una query update aggiorno il db
3- un altro problema, nel caso di 2 tabelle collegate da un id, come recupero l'id della tabella master dopo l'inserimento??

Chiedo troppo...

________________________
Pedro8a
Sviluppo per passione
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5