Profile的简单的配置与操作
下面由我来给大家配置一个Profile与Profile的用法
只要我们配置节Profile配置好后那整个项目就都可以随时调用了,Profile中的类型是可以任意的,而且永久保存,如果永久保存的话那就要用到数据库了。下面配置一个userName的Profile的属性为string类型.
1.要配置一下web.config文件中的<system.web>配置节中:<profile>配置节
<profile defaultProvider="MySqlProfileProvider">
<providers>
<add name="MySqlProfileProvider" connectionStringName="KuConnectionString" applicationName="/"
type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
<profile defaultProvider="MySqlProfileProvider">
<providers>
<add name="MySqlProfileProvider" connectionStringName="KuConnectionString" applicationName="/"
type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
<properties>
<add name="userName" type="system.string" serializeAs="Binary"/>
</properties>
</profile>
</system.web>
来解释一下上面的配置:
defaultProvider="MySqlProfileProvider" 为使用MySqlProfileProvider为这个项目的默认profile,因为它的默认是安装 Visual Studio时自带的一个machine.config文件中的profile。
<add name="MySqlProfileProvider" connectionStringName="KuConnectionString" applicationName="/"
type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
为创建一个新的profile的配置节这里的name就是defaultProvider指定默认的,这样新创建的profile的配置节就成了我们要指定的操作。
<add name="userName" type="system.string" serializeAs="Binary"/>
这个配置节是配置profile的属性name为属性的关键字,type为这个属性的类型,serializeAs为指定是以二进制保存到数据库中。
connectionStringName="KuConnectionString"为以要保存的数据库,为数据库连接字符串的name值
如:<connectionStrings>
<add name="KuConnectionString" connectionString="Data Source=localhost;Initial Catalog=ku;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
2.这时上面的配置好后就可创建数据库了
要创建一个数据库要符合profile的存储结构就不能乱建了,下面我们到(C:"WINDOWS"Microsoft.NET"Framework"v2.0.50727
v2.0.50727)是跟据你的版本号确定的文件夹,这时在这个文件夹下有一个名为:aspnet_regsql.exe的文件双击它后会出现一个向导,就是创建数据库你跟据这个向导一步一步地去做就可以了,在创建时可以就行选择你已有的数据库中,这样你的数据库中就会多出好几张表来,那就成功了。
3.上面的准备好后就可在程序中进行应用了
应用时非常简单:我们来实现一个从default1.aspx页点击一个按钮跳转到default2.aspx页面但同时给Profile.userName赋值并在default2.aspx页面中是进行显示这个值
一个default1.aspx页面
在一个按钮的单击事件中写上:
Profile.userName = "spring";
Server.Transfer("default2.aspx");
一个default2.aspx页面
在这个页面的要添加一个Label控件进行显示Profile.userName的值
在:
protected void Page_Load(object sender, EventArgs e)
{
this.labText.Text = Profile.userName;
}在这个加裁事件中指要把Profile.userName中的值取出给要显示控件的Text属性中就行了,非常简单吧,这里不用转换是因为我们在web.config文件中配置的时候userName就是string类型的。如果是其它的类型就需要做一下相对的转换了。
实现后可以去数据库中看看aspnet_Profile表中就有了我们刚刚保存的数据了,这些数据的存储我们并没有写什么sql语句就只是配置了一下web.config文件而已,这些东西微软都已经给你封装好了你只要配置一下使Profile就可以轻松的永久的保存数据了,但这个数据是以二进制存储的,还可以是string类型的。
不管怎么封装,它的后台不都得有sql语句去执行吗,要不怎么能把数据存到数据库中呢,是不?只不过是封装了你看不见了而已。如果大家有时间的话去想想微软是什么样的思想来开发的,又是怎么来实现这样的一个功能的?
作者: 王春天 出处: http://www.cnblogs.com/spring_wang/ Email: spring_best@yeah.net QQ交流:903639067
QQ群:322581894 关于作者: 大连天翼信息科技有限公司 技术总监。 SNF快速开发平台 创始人。应用平台架构师、IT规划咨询专家、业务流程设计专家。 专注于快速开发平台的开发、代码生成器。同时专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,精通DotNet系列技术Vue、.NetCore、MVC、Webapi、C#、WinForm等,DB(SqlServer、Oracle等)技术,移动端开发。熟悉Java、VB及PB开发语言。在面向对象、面向服务以及数据库领域有一定的造诣。现从事项目实施、开发、架构等工作。并从事用友软件产品U8、U9、PLM 客开工作。 如有问题或建议,请多多赐教! 本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。