Hi not sure if I should be posting this here but this is my problem.
Downloaded the files today had a little play and they work fine for login control and login status rendering css code. The problem I have is that I now get an error when logging into my app. This is the code where it falls down:
Public Overrides Function GetUser( _
ByVal username As String, _
ByVal userIsOnline As Boolean _
) _
As MembershipUser
Dim _sqlConnection As SqlConnection = New SqlConnection(_sqlConnectionString)
Dim _sqlCommand As SqlCommand = New SqlCommand("User_Sel", _sqlConnection)
_sqlCommand.CommandType = CommandType.StoredProcedure
_sqlCommand.Parameters.Add("@username", SqlDbType.NVarChar, 255).Value = username
_sqlCommand.Parameters.Add("@applicationName", SqlDbType.NVarChar, 255).Value = _applicationName
Dim _membershipUser As MembershipUser = Nothing
Dim _sqlDataReader As SqlDataReader = Nothing
Try
_sqlConnection.Open()
_sqlDataReader = _sqlCommand.ExecuteReader(CommandBehavior.CloseConnection)
If _sqlDataReader.HasRows Then
_sqlDataReader.Read()
_membershipUser = GetUserFromReader(_sqlDataReader)
If userIsOnline Then
Dim _sqlUpdateCommand As SqlCommand = New SqlCommand("User_UpdateActivityDate_ByUserName", _sqlConnection)
_sqlUpdateCommand.CommandType = CommandType.StoredProcedure
_sqlUpdateCommand.Parameters.Add("@username", SqlDbType.NVarChar, 255).Value = username
_sqlUpdateCommand.Parameters.Add("@applicationName", SqlDbType.NVarChar, 255).Value = _applicationName
32 _sqlUpdateCommand.ExecuteNonQuery()33 End If
End If
Catch e As SqlException
'Add exception handling here.
Finally
If Not _sqlDataReader Is Nothing Then _sqlDataReader.Close()
End Try
Return _membershipUser
End Function
line 32 is where it breaks and i get the following error:
System.InvalidOperationException was unhandled by user code
Message="There is already an open DataReader associated with this Command which must be closed first."
Source="System.Data"
StackTrace:
at System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand command)
at System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String method, SqlCommand command)
at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at Sleuth2.CustomMembershipProvider.GetUser(String username, Boolean userIsOnline) in C:\Users\Tuppers\..\MembershipProvider.vb:line 594
at System.Web.Security.Membership.GetUser(String username, Boolean userIsOnline)
at System.Web.Security.Membership.GetUser()
at CSSFriendly.LoginStatusAdapter.RenderContents(HtmlTextWriter writer)
at System.Web.UI.WebControls.Adapters.WebControlAdapter.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Control.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.WebControls.LoginView.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Control.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Page.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException:
now if I exclude the .browser file from the project obviously the CSS Friendly stuff stops but the login works???? So I am not sure how to get around this or am I just an unlucky one that has to forget these adapters?
Hi there, at line 27 you are trying to declare a new sqlcommand using the same sqlconnection that you used for the sqldatareader. The problem is that the sqlconnection is still in use because you haven't closed the
sqldatareader yet.
If you close the sqldatareader on line 25 after you pass the user info to the _membershipUser then it should work.
Or for some reason if you need the sqldatareader to stay open then create another sqlconnection for the updatecommand.
Hope this helps,
If my response is you're solution, then please return the favor by selecting me as the post answer.
Thanks for the reply!Well I was looking into that but I do not understand why the code works perfectly when the CSS Friendly
suite is not hooked up to the site! It’s strange!I am in the process of using their code and adding slowly but surely bits and bobs to render the controls in divs I have managed to complete
the Login and Login Status Control with no hiccup so far!If I do figure it out I will post later!Thanks again Tuppers
Tuppers
Member
455 Points
232 Posts
CSS Friendly error
May 15, 2009 05:02 PM|LINK
Hi not sure if I should be posting this here but this is my problem.
Downloaded the files today had a little play and they work fine for login control and login status rendering css code. The problem I have is that I now get an error when logging into my app. This is the code where it falls down:
Public Overrides Function GetUser( _ ByVal username As String, _ ByVal userIsOnline As Boolean _ ) _ As MembershipUser Dim _sqlConnection As SqlConnection = New SqlConnection(_sqlConnectionString) Dim _sqlCommand As SqlCommand = New SqlCommand("User_Sel", _sqlConnection) _sqlCommand.CommandType = CommandType.StoredProcedure _sqlCommand.Parameters.Add("@username", SqlDbType.NVarChar, 255).Value = username _sqlCommand.Parameters.Add("@applicationName", SqlDbType.NVarChar, 255).Value = _applicationName Dim _membershipUser As MembershipUser = Nothing Dim _sqlDataReader As SqlDataReader = Nothing Try _sqlConnection.Open() _sqlDataReader = _sqlCommand.ExecuteReader(CommandBehavior.CloseConnection) If _sqlDataReader.HasRows Then _sqlDataReader.Read() _membershipUser = GetUserFromReader(_sqlDataReader) If userIsOnline Then Dim _sqlUpdateCommand As SqlCommand = New SqlCommand("User_UpdateActivityDate_ByUserName", _sqlConnection) _sqlUpdateCommand.CommandType = CommandType.StoredProcedure _sqlUpdateCommand.Parameters.Add("@username", SqlDbType.NVarChar, 255).Value = username _sqlUpdateCommand.Parameters.Add("@applicationName", SqlDbType.NVarChar, 255).Value = _applicationName 32 _sqlUpdateCommand.ExecuteNonQuery() 33 End If End If Catch e As SqlException 'Add exception handling here. Finally If Not _sqlDataReader Is Nothing Then _sqlDataReader.Close() End Try Return _membershipUser End Functionline 32 is where it breaks and i get the following error:
System.InvalidOperationException was unhandled by user code
Message="There is already an open DataReader associated with this Command which must be closed first."
Source="System.Data"
StackTrace:
at System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand command)
at System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String method, SqlCommand command)
at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at Sleuth2.CustomMembershipProvider.GetUser(String username, Boolean userIsOnline) in C:\Users\Tuppers\..\MembershipProvider.vb:line 594
at System.Web.Security.Membership.GetUser(String username, Boolean userIsOnline)
at System.Web.Security.Membership.GetUser()
at CSSFriendly.LoginStatusAdapter.RenderContents(HtmlTextWriter writer)
at System.Web.UI.WebControls.Adapters.WebControlAdapter.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Control.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.WebControls.LoginView.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer)
at System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Control.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Page.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException:
now if I exclude the .browser file from the project obviously the CSS Friendly stuff stops but the login works???? So I am not sure how to get around this or am I just an unlucky one that has to forget these adapters?
Thanks in advance
Tuppers
JDL1475
Member
682 Points
150 Posts
Re: CSS Friendly error
May 16, 2009 06:45 PM|LINK
Hi there, at line 27 you are trying to declare a new sqlcommand using the same sqlconnection that you used for the sqldatareader. The problem is that the sqlconnection is still in use because you haven't closed the sqldatareader yet.
If you close the sqldatareader on line 25 after you pass the user info to the _membershipUser then it should work.
Or for some reason if you need the sqldatareader to stay open then create another sqlconnection for the updatecommand.
Hope this helps,
Feel free to contact me up if you need a Web developer in Tucson
Tuppers
Member
455 Points
232 Posts
Re: CSS Friendly error
May 17, 2009 06:35 PM|LINK