Buona sera a tutti,
nell'applicazione riempo un datagrid con una sub. Il codice è essenzialmente il seguente:
Using cnn As SqlConnection = SqlHelper.ConnessioneDatabase
cnn.Open()
Dim cmd As New SqlCommand
Dim stringaSQL As String = .....
cmd.CommandText = stringaSQL
cmd.Connection = cnn
Dim dtr As SqlDataReader = cmd.ExecuteReader()
While dtr.Read()
' .....
LeggiQualifica
End While
' chiudo gli oggetti
dtr.Close()
End Using
Il codice della sub LeggiQualifica è sostanzialmente questo:
Using cnn As SqlConnection = SqlHelper.ConnessioneDatabase
cnn.Open()
Dim cmd As New SqlCommand
Dim stringaSQL As String = ....
cmd.CommandText = stringaSQL
cmd.Connection = cnn
Dim dtr As SqlDataReader = cmd.ExecuteReader()
If dtr.HasRows Then
dtr.Read()
Qualifica = dtr("DesQualifica").ToString
Else
Messaggi.Errore("Ditta non trovata in fase di esportazione presenze", "Errore")
End If
' chiudo gli oggetti
dtr.Close()
End Using
Il problema è che la sub LeggiQualifica va in errore poiché mi segnala che il datareader è aperto. Ma io questo già lo so. Esiste un modo per interrogare il database più volte senza appesantire l'applicazione in generale?
Grazie a tutti