关于aspnet_regsql的使用

来源:互联网 发布:java数组传到jsp 编辑:程序博客网 时间:2024/05/21 16:55

是在做项目的时候,因为要使用微软的授权和身份验证系统,因此要把相关数据库调整到本地数据库之中。在这对此做一个总结。

一、新创建一个自定义名称的存有相应表的数据库。

配置时使用aspnet_regsql.exe.所以就找了下地址,顺利找到了。贴出来,以备忘。C:\Windows\Microsoft.NET\Framework\v4.0.30319 aspnet_regsql.exe

理论上讲步骤很简单,一直下一步即可。


我是使用VS2010自带的服务器资源管理器,数据库应该是express版本的。如果输错服务器名称,获取下拉列表时会报错:比如(./sqlexpess).

下拉列表显示如下:



证明我名字输入错误。


下拉列表正确显示,说明我是因为输错了\的方向,而不是因为大小写或者说只能用localhost之类的问题。



单击下一步,如果中途没有报错,则会出现:



而我输入的数据库名称,是原来不存在的,因此新创建了一个:

C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA


PS:这个新创建的数据库等同于系统默认创建的aspnetdb.只是名字改了。

二、将所有表添加到现有数据库(项目常用方法)

做项目的时候,通常会从VS直接创建数据库:


然后把数据库copy到C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA


实际上,只是拷过来是没有用的


下拉列表中没有这个数据库,如果自己输入,则最后会显示:



因此要把数据库放入服务器之中(表述可能有些不准确),

我所能想到的只有附加数据库

PS:从原处直接附加数据库应该也可以。为了安全备份,所以直接拷到了C盘的data文件夹里。


这是刚才建的Test数据库



现在再次运行aspnet_regsql,



可以看到,成功完成


点开项目可以看到,即使刷新后,原处数据库也并没有变化。


如果使用删除链接,再添加,则会显示一长串。


因此把C盘中文件再拷到App_Data之中,则可以成功显示。



最后,修改系统配置文件。

一般来说,使用授权和角色,以及EntityFramework(Linq To Sql),系统会生成这两个连接字符串。

<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
    <add name="DBEntities" connectionString="metadata=res://*/Models.LQ.csdl|res://*/Models.LQ.ssdl|res://*/Models.LQ.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\TestProject.mdf;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

而之后的配置部分会使用ApplicationServices,因此把数据库那部分改为自己的数据库即可。

AttachDBFilename=|DataDirectory|aspnetdb.mdf;之中数据库名字改为:TestProject.mdf即可。

之后点开aspnet配置,即可看到成功完成授权认证数据库的转移。

—————————————Over—————————————————

PS:

这部分内容上网找了一下,找到很多都是关于aspnet_regsql使用过程的,前因后果说的不是很多,可能也是我没有找到的缘故,因此自己探索和排错费了些时间,也走了很多弯路,之后会贴上对排错过程的总结。