193 messaggi dal 05 settembre 2001
Ho una pagina di questo tipo:

connPop = New OleDbConnection ...

strSel = "SELECT * FROM Tabella "
cmdQuery = New OleDbCommand( strSel, connPop )

connPop.Open()
myReader = cmdQuery.ExecuteReader (CommandBehavior.CloseConnection)

While myReader.Read ( )
   strUpd = "UPDATE Tabella SET ... "
   cmdQuery = New OleDbCommand( strUpd, connPop )
   cmdQuery.ExecuteNonQuery()
End While

myReader.Close ()
connPop.Close ()



però mi dice che la connessione è già usata dal datareader e devo aprirne un'altra. Esiste un modo per procedere senza dover aprire due connessioni distinte?

Ciao e grazie
5 messaggi dal 29 ottobre 2004
Purtroppo no, devi aprire due connessioni visto che stai utilizzando un cursore lato server.
Penso però che elaborando un po' il comando di UPDATE si possa evitare il datareader, magari fornisci qualche dettaglio in più e vediamo che cosa si può fare.
678 messaggi dal 12 maggio 2001
www.idioteca.it
prova ad usare questa funzioncina:

Public Sub subEseguiQuery(ByVal strSQL)
Dim conn As New SqlConnection(ConfigurationSettings.AppSettings("dsn"))

Dim mycommand As New SqlCommand(strSQL, conn)

conn.Open()
mycommand.ExecuteNonQuery()
conn.Close()
conn.Dispose()
conn = Nothing
End Sub

in questo modo eviti di ricordarti di gestire apertura e chiusura connessioni...
e la puoi usare ovunque nella tua applicazione.
ciao

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.