OLEDB COMMAND

martedì 07 giugno 2005 - 13.47

Babi Profilo | Junior Member

Ciao, oggi sono un pò nei casini... :)

1. Ho definito un oledb command
public cmd1as New OleDb.OleDbCommand

2. preparo i campi del db per la scrittura
With cmd1
.CommandText = cls_b.Insert1 ' istruzione di insert into...
.Parameters.Add("@cod_applicativo", strFormat.Char).Value = cls_b.cod_applicativo
.Parameter.............
end with

3. eseguo il comando
conn.Open()
cmd1.ExecuteNonQuery()
conn.Close()

RIESCO A SCRIVERE IL PRIMO RECORD. QUANDO TENTO DI SCRIVERE IL SECONDO RECORD
DI DA' UN ERRORE DB_E_BADORDINAL.(????)
MA SI PUO' UTILIZZARE UNO STESSO COMAND PIU' DI UNA VOLTA??


MI AIUTATE?? GRAZIE!!!

Babi Profilo | Junior Member

Mi sono risposta da sola. ogni volta devo riassegnare il command!!!

:)

ciao

McSxp Profilo | Newbie

In realtà non è necessario che reinizializzi il comand diventa pesante se le query sono diverse, puoi benissimo eseguire una serie di query sucessive, ma devi lavorare in Transaction mode, ovvero aprire e chiudere una transazione prima e dopo il tuo command...

Ti allego queste due righe che ho estrapolato, spero di non aver tralasciato nulla nel ritaglio... l'esempio è per SQL ma credo ci sia l'esatto equivalente anche in OLEDB è sufficiente sostituire le dichiarazioni.
( Tra l'altro credo sia forse meglio per fare queste cose tirare un occhio verso l'ADO ;) )

Dim Cn As SqlConnection
Dim oDr As SqlClient.SqlDataReader

myTrans = Cn.BeginTransaction()

oCmd = New SqlClient.SqlCommand()
oCmd.Connection = Cn
oCmd.Transaction = myTrans
oCmd.CommandTimeout = 15

szQuery = ".... your Query...."

oCmd.CommandText = szQuery
oDr = oCmd.ExecuteReader()

If oDr.Read Then
myfild = oDr.Item("myfield")
...
...
End if
oDr.Close()

szQuery = ".... your Query...."
oCmd.CommandText = szQuery
oCmd.ExecuteNonQuery()

myTrans.Commit()

Cn.Close()

Finchè non esegui la Commit puo eseguire le query.


Ciao
McSxp
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