Sqldatasoure Insertcommand in un ciclo

giovedì 18 agosto 2011 - 07.35
Tag Elenco Tags  .NET 4.0  |  Visual Studio Express

matteoct Profilo | Junior Member

Salve, nella mia applicazione ASP.NET 4.0 - Vb, utilizzo un Detailsview collegato a Sqldatasource mediante il quale inserisco/aggiorno/elimino i dati.

Adesso ho la seguente necessità: quando clicco sul tasto inserisci, i dati digitati dovrebbe inserirmeli n. volte.
Ho fatto numerose prove e come risultato finale ottengo una sola riga inserita nel db, che riporta (nel campo che viene incrememntato con il ciclo) il valore dell'ultimo ciclo.

In sintesi il codice è questo (evento Detailsview Iteminserting):

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

Il problema è che ad ogni insertcommand dovrebbe corrispondere un inserimento effettivo dei dati nel db, invece viene inserito un solo record al termine del ciclo.

Grazie

Gluck74 Profilo | Guru

perché con il codice che hai scritto, modifichi si i parametri e l'istruzione SQL, ma non lanci mai il comando di insert.
Aggiungi dentro il ciclo:
SqlDataSource1.Insert()

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

matteoct Profilo | Junior Member

Grazie Gluck per la risposta, comunque ho risolto trovando due soluzioni:

Soluzione 1
Al codice che ho postato:
prima del ciclo for aggiungo: e.Cancel=true

prima del next aggiungo: SqlDataSource1.Insert()

i parametri li valorizzo così (altrimenti inserisce righe vuote): SqlDataSource1.InsertParameters.Add("nometuocampo", DbType.String, e.Values("nometuocampo"))

Soluzione 2

ho disabilitato il CommandField del Detailsview ed ho inserito un Button nell'Header del medesimo Detailsview; al click del predetto pulsante, creo manualmente la connessione al Db e con il metodo ExecutenonQuery (nel ciclo for - next) inserisco i dati n. volte.

Grazie ancora

P.S. Potresti darmi un suggerimento anche per questo problema? http://www.dotnethell.it/forum/messages.aspx?ThreadID=39907
Ciao







Gluck74 Profilo | Guru

a parer mio meglio la soluzione 1

ciao

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5