Stò lavorando su di un controllo personalizzato per fare il LogIn. La mia pagina aspx è di questo tipo:

codice:
<%@ Page Language="VB" %>
<%@ Register TagPrefix="myControls" Namespace="MyControls" Assembly="MyLogIn" %>
<%@ Import namespace="System.Data.OleDb"%>
<script runat="server">

    Sub CaricaDati (s as object, e as eventargs)
              Dim ChkConn As OleDbConnection
              Dim ChkCmd As OleDbCommand
              Dim StrSql As string
              Dim ChkData As OleDbDataReader
              Dim strName As string
              Dim StrPasswd As string

              strName = CtrlLogIn.UserName
              StrPasswd = CtrlLogIn.Password
              ChkConn= New OleDbConnection(ConfigurationSettings.AppSettings("ConnForum"))
              StrSql ="SELECT Is_Id, Is_Nome, Is_Password, Is_Level FROM Iscritti WHERE Is_Nome =? AND Is_Password =?"
              ChkCmd= New OleDbCommand (strsql,ChkConn)
              ChkCmd.Parameters.Add("@Name",strName)
              ChkCmd.Parameters.Add("@Password",StrPasswd)

              ChkConn.open()
              ChkData=ChkCmd.ExecuteReader()

              CtrlLogIn.DataSource=ChkData
         End Sub


</script>
<html>
<head><title>DisplayLoginEvent.aspx</title></head>
<body>
<form Runat="Server">

<MyControls:MyLogIn id="CtrlLogIn" OnLogIn="CaricaDati" Runat="Server"/>

</form>
</body>
</html>
La sub CaricaDati è associata all'evento OnLogIn che ho definito all'interno del mio controllo. Ora, dopo aver fatto CtrlLogIn.DataSource=ChkData vorrei chiudere reader e connessione, però se lo faccio mi restituisce questo errore:

System.InvalidOperationException: Invalid attempt to FieldCount when reader is closed

Sapete come posso fare?