经过3天努力,数据库移植工作基本完成,现在对数据库移植的方法进行汇总。
步骤一
首先我的老系统用的是ACCESS数据库,这样对数据库的查询操作不方便,我首先将ACCESS数据库中的内容移植到SQL SERVER2005中去,这里可以通过access自带的“升迁向导”来完成,具体见:
如何将 Access 数据库转换到 SQL Server 。
步骤二
将数据库移植到SQL SERVER 2005以后就要对数据库的数据进行操作了,我们这里要求将查询结果以xml的格式存放。不知道什么原因数据库中存在的一些记录没有密码和邮箱,还有一些用户名含有非法字符如“&”,因此我们要查询出符合条件的记录。下面为查询语句
从这里我们可以看到有11828条件记录符合要求。
步骤三
下面我们就要将查询结果以xml的格式输出并且保存到指定的文件中去。查询代码为
我们将结果保存到指定的user.txt文件中去。然后将xml格式的数据粘贴到"ImportUser.aspx"页面中去,导入数据。
注意
在导入数据以前,我们先去web.config中看看 "membership defaultProvider”的passwordFormat="[Clear|Hashed|Encrypted]" 。
我们在插入数据以前要设置passwordFormat为Clear类型。
步骤四
因为我们导入数据库的password是16位的md5,因此我们通过passwordFormat为Clear类型导入密码以后,我们要将passwordFormat改回来,根据我前进说过的我自己设定了一个SqlMembershipProvider为MySqlMembershipProvider,并且将passwordFormat="Hashed" 设置为16位的md5的解密方式,现在我们就要改成"Hashed”的密码格式。
打开DNN数据库中的表aspnet_Membership,我看可以看到我们后面插入的用户的passwordFormat都为0,这里我们要将这些0改成1,表示passwordFormat为“Hashed”。我们可以通过如下sql代码来改变数据库表的列值。
总结
数据库移植操作应该在自定义SqlMembershipProvider方法以后进行。