Asp.net 2.0 Webpart 数据库的迁移

Webpart asp.net 2.0 中一项非常出色的功能,但是非常遗憾的是,默认是使用 sql express 2005 作为后台数据库。而且很多初学者在本机写完程序迁移到服务器上以后才如梦初醒,原来还要后台数据库的,甚至 WROX 出的《 Professional ASP.NET 2.0 》在讲 webpart 这节时都不曾提及后台数据库的事,真是让人失望之极(起码我没看到)。而目前主流的网站都是用 MS SQLServer 2000 或是 Access 作为数据库,如何才能把 Webpart 的数据库从 SQL Express 2005 迁移到 SQLServer 2000 Access 呢?

 

迁移到SQLServer 2000

 

       微软提供了一个数据库配置程序,可以方便的在SQLServer2000SQLServer2005上进行webpart的数据库配置

       1.首先运行SQLServer

       2.然后运行C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regsql.exe 会出现一个图形化的操作界面,根据提示便可自动生成一个名为aspnetdb的库。

       3.打开vs.net 2005,新建一个网站,往页面上拖一个webpartmanager,运行一下,出错。因为你还没有配web.config呀,而且vs.net2005vs.net2003有所不同,默认是没有web.config文件的,需要我们自己增加,(当然你也可以直接修改C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/CONFIG下默认的web.config,但是我不推荐)

       4.在新加的web.config中把  <connectionStrings/>一行修改成如下

  <connectionStrings>

    <remove name="LocalSqlServer" />

    <add name="LocalSqlServer" connectionString="Data Source=localhost;Initial Catalog=aspnetdb;Persist Security Info=True;User ID=sa;Password="

        providerName="System.Data.SqlClient" />

  </connectionStrings>

 

完成后的web.config

<?xml version="1.0" encoding="utf-8"?>

<!--

    注意: 除了手动编辑此文件以外,您还可以使用

    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的

     “网站”->Asp.Net 配置”选项。

    设置和注释的完整列表在

    machine.config.comments 中,该文件通常位于

    /Windows/Microsoft.Net/Framework/v2.x/Config

-->

<configuration>

    <appSettings/>

    <connectionStrings/>

    <system.web>

        <!--

            设置 compilation debug="true" 将调试符号插入

            已编译的页面中。但由于这会

            影响性能,因此只在开发过程中将此值

            设置为 true

        -->

        <compilation debug="false" />

        <!--

            通过 <authentication> 节可以配置 ASP.NET 使用的

            安全身份验证模式,

            以标识传入的用户。

        -->

        <authentication mode="Windows" />

        <!--

            如果在执行请求的过程中出现未处理的错误,

            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,

            开发人员通过该节可以配置

            要显示的 html 错误页

            以代替错误堆栈跟踪。

 

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">

            <error statusCode="403" redirect="NoAccess.htm" />

            <error statusCode="404" redirect="FileNotFound.htm" />

        </customErrors>

        -->

    </system.web>

</configuration>

 

迁移到Access

   webpart的数据库迁移到sqlserver是一件非常方便的事,但是对于很多小型网站来说,access才是最佳选择。但是要将数据库迁移到Access却是一件非常的复杂的事情, 而且网上也没有查到这方面现成的中文资料,之前在微软英文asp.net新闻组发了个贴子也没人回答,有些英文资料也是语焉不详,不成系统。

  下面我来说一下详细的过程。

   首先你需要一个accessProvider以及相对应的数据库。之前我曾经从网上找了一个accessprovider,并尝试把SQLServer版的表导出成Access,结果发现这条路是行不通的,因为不匹配。

       目前在英文google里能找到两个accessProvide

       一个是AccessPersonalizationProvider,下载地址是

http://www.kowitz.net/files/AccessPersonalizationProvider.zip

命名空间为MarkItUp.SingleUserBlog.Web.WebParts.AccessProviders  虽然在源代码注释里也写着copyright是微软的,但是下载时没有对应的数据库。

       另外一个是微软官方网站上的以前Beta1时出的 SampleAccessProviders,解压后自带一个access数据库,而且还有web.config的样例。下载地址是

http://msdn.microsoft.com/vstudio/eula.aspx?id=96713a8e-b8d4-4d6e-bb8f-027e6c8e15d8

我用的是后者。

下载后,名字是SampleAccessProviders.vsi,解压缩后可以在C:/Documents and Settings/Administrator/My Documents/Visual Studio 2005/Templates/ProjectTemplates/Visual Web Developer/Starter Kits/ASP.NET Access Providers  找到。

你可以用vs.net2005打开Access.csproj编译出dll,名字为SampleAccessProviders.dll,然后把ASPNetDB.mdb复制到App_Data目录,然后在自己的网站中引用SampleAccessProviders.dll,并参考那个web.config修改自己的配置文件。

 

关于其他数据库

由于SampleAccessProviders是开放源代码的,所以参照着自己扩展Provider。目前网上可以找到XmlFilePersonalizationProvider。对于Oracle,mysql等数据库可以自己写扩展Provider,但是目前我们已有了access这种数据库独立的方式,所以可以通过混用来实现更为方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值