下面由我来给大家配置一个 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语句去执行吗,要不怎么能把数据存到数据库中呢,是不?只不过是封装了你看不见了而已。如果大家有时间的话去想想微软是什么样的思想来开发的,又是怎么来实现这样的一个功能的?