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
App. WinForms / WPF .NET
Al comando è già associato un DataReader aperto, che deve essere chius...
lunedì 04 maggio 2009 - 11.53
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
cok7sette
Profilo
| Newbie
5
messaggi | Data Invio:
lun 4 mag 2009 - 11:53
Ho visto che questo problema ce l'hanno già avuti in molti ed ho anche trovato la soluzione:
Apro una nuova connection ad ogni esecuzione ed il problema si risolve da solo.
Il mio dubbio è legato alle prestazioni di un codice scritto in questa maniera.
Se ogni volta apro una connessione non mi ritroverò con un singlo client che mi apre, da solo, una decina di connessioni contemporanee?
Una volta che avrò 10 client cosa succede ad SQL server? (tra l'atro lavoro su SQL2000....)
Potessi almeno utilizzare una connessione "Predefinita"...
Mi sono creato una classe che "gestisce" i parametri di connessione al DB ed una dell eproprietà è proprio una system.data.sqlClient.sqlConnection, ma a questo punto diventa semplicemente inutile...
In questa"mia" classe ho anche aggiunto due Function che uso per eseguire comandi SQL e per valorizzare Datareader... (allego il codice)
Public Class clsDB
Dim m_sqlconnection As New System.Data.SqlClient.SqlConnection
Public Property DB_SqlConnection() As System.Data.SqlClient.SqlConnection
Get
DB_SqlConnection = m_sqlconnection
End Get
Set(ByVal value As System.Data.SqlClient.SqlConnection)
m_sqlconnection = value
End Set
End Property
Public Function ExecuteSqlCommand(ByVal strQuery As String) As Integer
Dim queryCommand As New System.Data.SqlClient.SqlCommand
Dim connection As New System.Data.SqlClient.SqlConnection
connection.ConnectionString = Me.DB_Connectionstring
connection.Open()
'POTESSI FARE ... connection = Me.DB_SqlConnection ... POTESSI, ma non si può fare....
queryCommand.CommandText = strQuery
queryCommand.Connection = connection
ExecuteSqlCommand = queryCommand.ExecuteNonQuery
queryCommand.Dispose()
End Function
Public Function ExecuteSqlDataReader(ByVal strquery As String) As System.Data.SqlClient.SqlDataReader
Dim connection As New System.Data.SqlClient.SqlConnection
Dim query As New System.Data.SqlClient.SqlCommand
connection.ConnectionString = Me.DB_Connectionstring
connection.Open()
'IDEM COME SOPRA
query.Connection = connection
query.CommandText = strquery
ExecuteSqlDataReader = query.ExecuteReader()
query.Dispose()
End Function
End Class
Solo che non sono del tutto convinto che questo sia il metodo migliore (e sopratutto l'unico) per eseguire in maniera performate comandi SQL...
Qualche suggerimento?
Stò sbagliando tutto o questa è "la via"?
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 !