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
ASP.NET 1.0/1.1
Ado.net
mercoledì 28 maggio 2003 - 16.26
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
sp
Profilo
| Newbie
30
messaggi | Data Invio:
mer 28 mag 2003 - 16:26
un tempo felice (o infelice) usavo con ASP 3.0 codice tipo:
....
rs.AddNew
rs.Fields("a")="bb"
rs.Fields("b")="cc"
rs.Fields("c")="dd"
rs.update
...
Quale sarebbe l'equivalente di questo codice usando asp.net?
Grazie.
SP
Admin
Profilo
| Junior Member
160
messaggi | Data Invio:
mer 28 mag 2003 - 17:19
ciao,
purtroppo (o per fortuna dipende dai punti di vista) il recorset connesso al db non esiste più in .NET.
Con ADO.NET, tutto è disconnesso.
Quello che puoi fare è quindi "attaccarti" al db tramite un Adapter (come ad. es. SqlDataAdapter), chiamarne il metodo Fill per riempire un dataset... apportare le tue modifiche al dataset, e quindi chiamare il metodo update dell'adapter per trasportare (e quindi rendere persistenti) le modifiche dal dataset al db.
Penso che un buon punto di inizio per capire ciò di cui sto parlando, sia questo:
http://it.gotdotnet.com/QuickStart/howto/default.aspx?url=/quickstart/howto/doc/adoplus/UpdateDataFromDB.aspx
Ciao, alla prossima!
Stefano Giannone
sp
Profilo
| Newbie
30
messaggi | Data Invio:
mer 28 mag 2003 - 17:54
ah, molto interessante! Dalle tue parole e dall'esempio ho scritto questo:
private OleDbConnection conn = new OleDbConnection();
private OleDbDataAdapter da;
private DataTable ds = new DataTable();
conn.ConnectionString = "uso access";
conn.Open();
string SQL = "select * from ...";
da = new OleDbDataAdapter(SQL,conn);
da.Fill(ds);
e fin qui era tutto ok, poi esagero e decido di aggiungere una riga... :-(
DataRow r = ds.NewRow();
r[0] = "mah";
r[1] = "boh";
ds.Rows.Add(r);
// ora la riga che mi da errore...
da.Update(ds);
l'errore:
Update richiede un InsertCommand valido se l'insieme DataRow viene passato con righe nuove.
Grazie Stefano.
Admin
Profilo
| Junior Member
160
messaggi | Data Invio:
gio 29 mag 2003 - 16:08
Ciao,
molto probabilmente hai dimenticato di includere la seguente riga (che però è indicata nell'esempio che ti ho postato):
Dim myDataRowsCommandBuilder as OleDbCommandBuilder = new OleDbCommandBuilder(myOleDbDataAdapter)
In pratica questa istruzione non fa altro che generare automaticamente per conto tuo... tutti i comandi per l'insert, update, delete... che verranno utilizzati all'interno del metodo Update del dataadapter che chiamerai.
Dai un'occhiata anche al sorgente completo dell'esempio:
http://it.gotdotnet.com/quickstart/util/srcview.aspx?path=/quickstart/howto/samples/adoplus/UpdatingData/UpdatingData.src
forse dal sorgente completo si capiscono meglio i vari passaggi.
Ciao!
Stefano Giannone
Isabeau
Profilo
| Newbie
17
messaggi | Data Invio:
mer 17 set 2003 - 14:57
Sto cercando di fare anch'io la stessa cosa ma da un'errore: Errore di Sintassi nell'istruzione INSERT INTO, nonostante ci sia il command builder...
Grazie ancora!
Admin
Profilo
| Junior Member
160
messaggi | Data Invio:
mer 17 set 2003 - 15:58
può dipendere dalla tabella... e da come fai la query di select iniziale.
Prova a postarci un pò di codice... così verifichiamo un pò.
Ciao
Stefano Giannone [MCP .NET]
Isabeau
Profilo
| Newbie
17
messaggi | Data Invio:
mer 17 set 2003 - 17:23
Dopo la connessione questo è il codice che crea la tabella e la riempie:
sql = "SELECT * FROM tab"
AdattaTab = New OleDb.OleDbDataAdapter(sql, objConn)
AdattaTab.MissingSchemaAction = MissingSchemaAction.AddWithKey
Dim CreaComandiTab As New OleDb.OleDbCommandBuilder(AdattaTab)
AdattaTab.Fill(db, "tb")
Context.Cache("db") = db
Context.Cache("AdattaTab") = AdattaTab
in un'altra pagina ....
La variabile 'riga' viene valorizzata...e poi all riga 77 c'è l'errore
Syntax error in INSERT INTO statement.
tbTab.Rows.Add(riga)
Line 76: Dim a As OleDb.OleDbDataAdapter = Context.Cache("AdattaTab")
Line 77: a.Update(dbIns, "tb")
Admin
Profilo
| Junior Member
160
messaggi | Data Invio:
mer 17 set 2003 - 18:23
va nella guida del .net framework e cerca "Enumerazione MissingSchemaAction"
cerca di capire come funziona... credo che il problema derivi da lì.
Ciao
Stefano Giannone [MCP .NET]
Isabeau
Profilo
| Newbie
17
messaggi | Data Invio:
mar 23 set 2003 - 12:04
Ciao, credevo di aver risolto il prblema in quanto sul mio pc di casa l'update finalmente funzionava e scriveva i dati nel db...
Ora però ho trasferito il prgetto sul portatile...senza apportare modifiche....e da questo errore:
Per l'operazione è necessaria una query aggiornabile.
Cosa cavolo è successo?
Grazie!
Admin
Profilo
| Junior Member
160
messaggi | Data Invio:
mar 23 set 2003 - 12:27
non so come aiutarti.
Prova a vedere le differenze di software installato tra le 2 macchine, per quanto riguarda maggiormente il db.
Ciao
Stefano Giannone [MCP .NET]
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 !