"INSERT INTO" ALL'INTERNO DI UN CICLO "FOR...NEXT"

lunedì 28 aprile 2008 - 13.16

172690 Profilo | Junior Member

Salve a tutti, ho il seguente problema:
devo fare nelle inser in una tabella un numero di volte che mi viene passato dall'esterno, e per questo utilizzo un ciclo for..next.
Vi metto qui sotto una versione ridotta del mio codice, magari vedete dove sbaglio oppure potete darmi un suggerimento su una strada diversa da seguire.
Con il codice qui sotto, mi fa il primo inserimento SENZA problemi e quando arriva a fare il secondo si blocca, executeNonQuery, dicendomi
"Eccezione first-chance di tipo "System.Data.OleDbException" in Sistem.Data.dll"
Nota: la chiave è formata da Campo_A, Campo_B, Campo_C; e questo ultimo cambia ad ogni ciclo
...
Estraggo il numero di volte da fare il for
dim objCommand as OleDbCommand = New OleDbCommand
objCommand.Connection = objConnectio
dim cont as integer
For cont = 1 to numero_volte
calcolo Valore_Campo_C
objCommand.CommandText = "INSERT INTO nome_Tabella" & "Campo_A, Campo_B, Campo_C, Campo_D)" & "VALUES(@Campo_A, @Campo_B, @Campo_C, @Campo_D)"
objCommand.Parameters.AddWith("@Campo_A", Valore_Campo_A)
objCommand.Parameters.AddWith("@Campo_B", Valore_Campo_B)
objCommand.Parameters.AddWith("@Campo_C", Valore_Campo_C)
objCommand.Parameters.AddWith("@Campo_D", Valore_Campo_D)
objConnection.Open()
objCommand.ExecuteNonQuery()
objConnection.Close()
Next


Vi ringrazio infinitamente!

alx_81 Profilo | Guru

>Salve a tutti, ho il seguente problema:
>devo fare nelle inser in una tabella un numero di volte che mi
>viene passato dall'esterno, e per questo utilizzo un ciclo for..next.
>Vi metto qui sotto una versione ridotta del mio codice, magari
>vedete dove sbaglio oppure potete darmi un suggerimento su una
>strada diversa da seguire.
>Con il codice qui sotto, mi fa il primo inserimento SENZA problemi
>e quando arriva a fare il secondo si blocca, executeNonQuery,
>dicendomi
>"Eccezione first-chance di tipo "System.Data.OleDbException"
>in Sistem.Data.dll"
Dovresti fornirci il messaggio di errore completo.
Il problema potrebbe essere sulle foreign key, sul formato di campi, ecc.. Ma devi passarci il messaggio di errore..
Alx81 =)

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

SSUPERPIPPO Profilo | Guru

Ciao

>Estraggo il numero di volte da fare il for
>dim objCommand as OleDbCommand = New OleDbCommand
>objCommand.Connection = objConnectio
>dim cont as integer
>For cont = 1 to numero_volte
> calcolo Valore_Campo_C
>objCommand.CommandText = "INSERT INTO nome_Tabella" & "Campo_A,
>Campo_B, Campo_C, Campo_D)" & "VALUES(@Campo_A, @Campo_B, @Campo_C,
>@Campo_D)"

Qui manca un Clear dei Parameters in questo modo:

objCommand.Parameters.Clear

In questo modo i parametri vengono eliminati per poter essere riaggiunti, diversamente ti solleva un'eccezione

> objCommand.Parameters.AddWith("@Campo_A", Valore_Campo_A)
>objCommand.Parameters.AddWith("@Campo_B", Valore_Campo_B)
> objCommand.Parameters.AddWith("@Campo_C", Valore_Campo_C)
> objCommand.Parameters.AddWith("@Campo_D", Valore_Campo_D)
> objConnection.Open()
> objCommand.ExecuteNonQuery()
> objConnection.Close()
>Next
>
>
>Vi ringrazio infinitamente!

Di nulla, ciao

Alessandro


http://blogs.dotnethell.it/alebadalin

172690 Profilo | Junior Member

Ti ringrazio: era proprio quello che ci voleva...
Me lo dimentico sempre :-)
Grazie ancora e buona giornata!

172690 Profilo | Junior Member

Purtroppo mi dice solo quello :-(

SSUPERPIPPO Profilo | Guru

Di nulla

se ritieni la risposta soddisfacente chiudi il Thread accettando la risposta.

Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

SCUSA, HO VISTO CHE HAI GIA' ACCETTATO... CIAO

ALE
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5