wilcor14
asked on
FirstName is not a member of Profile
I am trying to use the new Profile features in .Net 2.0. But when I enter the following I get an error saying that FirstName is not a member of Profile.
txtFirstName.text = Profile.firstname
Any ideas on what I'm missing? Thanks
txtFirstName.text = Profile.firstname
Any ideas on what I'm missing? Thanks
<profile enabled ="true" defaultProvider="AspNetSqlProfileProvider">
<providers>
<add connectionStringName="LocalSqlServer" applicationName="/CoachingSource"
name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
<properties>
<add name="FirstName" type="String" serializeAs="String" />
<add name="LastName" type="String" serializeAs="String" />
<add name="LastVisited" type="String" serializeAs="String" />
<add name="Age" type="String" serializeAs="String" />
<add name="Member" type="String" serializeAs="String" />
</properties>
</profile>
As long as the above is under <system.web> the properties work fine as Profile.FirstName. Not sure if case sensitive, but you can try.
Think when you specify a Sql provider or any provider for that matter, that the properties come from the provider and so the properties section is ignored. Check if the database has the same properties in its table for profile.
Think when you specify a Sql provider or any provider for that matter, that the properties come from the provider and so the properties section is ignored. Check if the database has the same properties in its table for profile.
ASKER
Thanks for the help. I have the table set up but in apsnet_Profile, there is nothing in the table. Does that make a difference?
ASKER
I went to the Web Site Administration tool and clicked on the provider tab. The only providers listed are those for membership and role management but nothing for profile management. Is this correct? Thanks.
I believe you have to create it manually (through SQL) as these are custom properties. Here is an example from Microsoft:
http://msdn.microsoft.com/en-us/library/8zs47k7y.aspx
http://msdn.microsoft.com/en-us/library/8zs47k7y.aspx
ASKER
mwvisa1
I don't think it has anything to do with my database since in my vb project I getting the erro that FirstName is not a member of Profile. Or not?
I don't think it has anything to do with my database since in my vb project I getting the erro that FirstName is not a member of Profile. Or not?
Ok, well where is it suppose to get the structure of Profile object then?
You specified the database is the provider of the profile, so it must use the database to determine the structure. At least that is my understanding. If this is supposed to function otherwise, then hopefully someone knows how to get it working.
Hopefully you already tried making the property in case to match the property setup FirstName as suggested in case it is case sensitive. Would not want you to waste time otherwise.
Anyhow, I apologize that I can't be more helpful, but my knowledge on this subject is limited to what I have already suggested. :(
Regards,
Kevin
You specified the database is the provider of the profile, so it must use the database to determine the structure. At least that is my understanding. If this is supposed to function otherwise, then hopefully someone knows how to get it working.
Hopefully you already tried making the property in case to match the property setup FirstName as suggested in case it is case sensitive. Would not want you to waste time otherwise.
Anyhow, I apologize that I can't be more helpful, but my knowledge on this subject is limited to what I have already suggested. :(
Regards,
Kevin
ASKER
Found a post that explains what the problem is. I am running a Web application.
I know web applications (as opposed to web sites) handle profiles a little differently because of the way things are compiled. If you are using a web application we may have to find another way around this issue.
Here is the solution to grabbing a different users profile if you are using a web application. Enjoy!
In most of the code examples you have seen they use a ProfileCommon class. That is because they are working with a website and that class is created while they are still developing. That is also why they get intellisense when using profiles. When using a web app the code won't compile until run time so we don't get the intellisense and we don't get the ProfileCommon class. ProfileCommon's base class is ProfileBase. We can use this class the same way they were to an extent. Just look at the sample code below. I think it will make sense.
I know web applications (as opposed to web sites) handle profiles a little differently because of the way things are compiled. If you are using a web application we may have to find another way around this issue.
Here is the solution to grabbing a different users profile if you are using a web application. Enjoy!
In most of the code examples you have seen they use a ProfileCommon class. That is because they are working with a website and that class is created while they are still developing. That is also why they get intellisense when using profiles. When using a web app the code won't compile until run time so we don't get the intellisense and we don't get the ProfileCommon class. ProfileCommon's base class is ProfileBase. We can use this class the same way they were to an extent. Just look at the sample code below. I think it will make sense.
Dim strUserName As String = Me.lstUsers.SelectedValue
Dim userProfile As ProfileBase = ProfileBase.Create(strUserName, True) 'if the user already has a profile this will just grab their profile, it won't overwrite it, don't worry
Me.txtFirstName.Text = userProfile.GetPropertyValue("FirstName")
Me.txtLastName.Text = userProfile.GetPropertyValue("LastName")
Me.txtEmailAddress.Text = Membership.GetUser(strUserName).Email
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks for the effort.
txtFirstName.text = Profile.FirstName