Click here to Skip to main content
12,405,853 members (72,066 online)
Rate this:
 
Please Sign up or sign in to vote.
See more: VB ASP.NET VB.NET
I'm using the Profile Feature in my web application. I got a helpful article at Using ASP.NET Profile Feature in a Web Application Project[^]. According to this article I coded my `web.config` , a custom profile class, a profile info class. Following is my code.

My Code

web.config
<profile enabled="true" inherits="app_DeliverMatic.UserProfile" defaultProvider="ProfileProvider">
  <providers >
    <add name="ProfileProvider" applicationName="delivermatic" connectionStringName="LocalSqlServer" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </providers>
</profile>
 
<connectionStrings>
    <clear/>
    <add name="LocalSqlServer" connectionString="Data Source=(local);Initial Catalog=mydb;Persist Security Info=True;User ID=uid;Password=pass;"/>
</connectionStrings>
UserProfile.vb
Public Class UserProfile
    Inherits ProfileBase
 
    Public ReadOnly Property UserProfileInfo As UserProfileInfo
        Get
            Return DirectCast(GetPropertyValue("UserProfileInfo"), UserProfileInfo)
        End Get
    End Property
 
    Public Shared Function GetProfile() As UserProfile
        Return DirectCast(HttpContext.Current.Profile, UserProfile)
    End Function
 
    Public Shared Function GetProfile(ByVal UserName As String) As UserProfile
        Return DirectCast(Create(UserName), UserProfile)
    End Function
 
End Class
UserProfileInfo.vb
<Serializable()>
Public Class UserProfileInfo
    Dim _Name As String
    Dim _Company As String
    Dim _Address1 As String
    Dim _Address2 As String
    Dim _City As String
    Dim _State As String
    Dim _Country As String
    Dim _Zip As String
    Dim _PhoneNo As String
    Dim _Mobile As String
    Dim _FaxNo As String
    Dim _Website As String
    Dim _Registration_Email As String
 
    Public Property Name As String
        Set(ByVal value As String)
            _Name = value
        End Set
        Get
            Return _Name
        End Get
    End Property
    Public Property Company As String
        Set(ByVal value As String)
            _Company = value
        End Set
        Get
            Return _Company
        End Get
    End Property
    Public Property Address1 As String
        Set(ByVal value As String)
            _Address1 = value
        End Set
        Get
            Return _Address1
        End Get
    End Property
    Public Property Address2 As String
        Set(ByVal value As String)
            _Address2 = value
        End Set
        Get
            Return _Address2
        End Get
    End Property
    Public Property City As String
        Set(ByVal value As String)
            _City = value
        End Set
        Get
            Return _City
        End Get
    End Property
    Public Property State As String
        Set(ByVal value As String)
            _State = value
        End Set
        Get
            Return _State
        End Get
    End Property
    Public Property Country As String
        Set(ByVal value As String)
            _Country = value
        End Set
        Get
            Return _Country
        End Get
    End Property
    Public Property Zip As String
        Set(ByVal value As String)
            _Zip = value
        End Set
        Get
            Return _Zip
        End Get
    End Property
    Public Property PhoneNo As String
        Set(ByVal value As String)
            _PhoneNo = value
        End Set
        Get
            Return _PhoneNo
        End Get
    End Property
    Public Property Mobile As String
        Set(ByVal value As String)
            _Mobile = value
        End Set
        Get
            Return _Mobile
        End Get
    End Property
    Public Property FaxNo As String
        Set(ByVal value As String)
            _FaxNo = value
        End Set
        Get
            Return _FaxNo
        End Get
    End Property
    Public Property Website As String
        Set(ByVal value As String)
            _Website = value
        End Set
        Get
            Return _Website
        End Get
    End Property
    Public Property Registration_Email As String
        Set(ByVal value As String)
            _Registration_Email = value
        End Set
        Get
            Return _Registration_Email
        End Get
    End Property
 
    Public Sub New()
 
    End Sub
 
    Public Sub New(ByVal Name As String, ByVal Company As String, ByVal Address1 As String, ByVal Address2 As String, ByVal City As String, ByVal State As String, ByVal Country As String, ByVal Zip As String, ByVal PhoneNo As String, ByVal Mobile As String, ByVal FaxNo As String, ByVal Website As String, ByVal Registration_Email As String)
        Me.Name = Name
        Me.Company = Company
        Me.Address1 = Address1
        Me.Address2 = Address2
        Me.City = City
        Me.State = State
        Me.Country = Country
        Me.Zip = Zip
        Me.PhoneNo = PhoneNo
        Me.FaxNo = FaxNo
        Me.Website = Website
        Me.Registration_Email = Registration_Email
    End Sub
 
End Class

Code To Use The Profile Provider
Dim profile As UserProfile = UserProfile.GetProfile(lblEmail.Text)
With profile.UserProfileInfo
    .Address1 = txtAddress1.Text
    .Address2 = txtAddress2.Text
    .City = txtCity.Text
    profile.Save()
End With
**My Problem**
The above code works just fine. But the problem is, if I set the connection string name to anything I want, it gives error. When changing the connection string name I also setting the "connectionStringName" attribute of the profile provider to the new name. It seems that the ProfileBase class works only with connectionStringName set to LocalSqlServer. How can I get rid of this problem?
Posted 3-Jan-13 7:49am
Comments
Christian Graus 3-Jan-13 14:10pm
   
That's really insane, but, if you can change the connection string itself, why do you need to change the name as well ?
KrishanuDey 3-Jan-13 14:20pm
   
when i change the connection string name from "LocalSqlServer" to "myCon" and also change the profile provider's "connectionStringName" attribute to "myCon", an error is encountered. It's saying "The connection name 'LocalSqlServer' was not found in the applications configuration or the connection string is empty."
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

Your error means it's still looking for that name somewhere. Have you searched your whole project to make sure that name does not exist anywhere ? It has to be coming from somewhere
  Permalink  
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 2

Solved it. Added "<clear/>" just before adding the profile provider.
<providers>
  <clear />
  <add name="ProfileProvider" applicationname="delivermatic" connectionstringname="myCon" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month


Advertise | Privacy | Mobile
Web01 | 2.8.160721.1 | Last Updated 3 Jan 2013
Copyright © CodeProject, 1999-2016
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100