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
<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>

Open in new window

wilcor14Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Gyanendra SinghArchitectCommented:
use this

txtFirstName.text = Profile.FirstName
0
Kevin CrossChief Technology OfficerCommented:
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.
0
wilcor14Author Commented:
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?
0
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

wilcor14Author Commented:
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.
0
Kevin CrossChief Technology OfficerCommented:
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
0
wilcor14Author Commented:
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?
0
Kevin CrossChief Technology OfficerCommented:
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
0
wilcor14Author Commented:
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.
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 

Open in new window

0
Kevin CrossChief Technology OfficerCommented:
Glad you found what you needed.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
wilcor14Author Commented:
Thanks for the effort.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.