Code Behind中没有获取配置文件属性

时间:2010-03-26 12:20:54

标签: vb.net properties profile provider

我正在尝试在代码中获取Profile属性。但我没有像Profile.HomephoneProfile.CellPhone这样的任何智慧。当我尝试:

Dim memberprofile As ProfileBase = HttpContext.Current.Profile
Dim homePhone As String = memberprofile.GetPropertyValue("HomePhone").ToString()

我得到Data is Null。无法在Null值错误上调用此方法或属性。我在配置文件表中有当前用户的数据。 我在即时窗口中得到以下结果

?HttpContext.Current.Profile.UserName.ToString
"sub2"
?Profile.DefaultProfile.Properties.Count
2
? HttpContext.Current.Profile("HomePhone")
"" {String}
    String: ""

我无法在页面加载事件中运行属性值。 这是我的web.config文件设置:

<profile>
  <providers>
    <clear />
    <add name="AspNetSqlProfileProvider"   connectionStringName="Primary" applicationName="MyFmNow.com"
 type="System.Web.Profile.SqlProfileProvider"  />
  </providers>
  <properties>
    <add name="HomePhone" type="String" />
    <add name="CellPhone"  type="String"/>
  </properties>
</profile>

1 个答案:

答案 0 :(得分:0)

如果您调用ToString(),如果data为null,则会出现错误;你可以通过这样做来解决这个问题:

Dim homePhone As String = CType(memberprofile.GetPropertyValue("HomePhone"), String)

即使数据为空,转换也可以正常工作。检查后端数据库;你看到该用户的aspnet_Profile(或类似名称,不记得确切名称)表中的任何值?

HTH。