zoukankan      html  css  js  c++  java
  • Asp.net 2.0 Webpart 数据库的迁移

    作者:童振华  (转载请注时作者)

     

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

     

    迁移到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这种数据库独立的方式,所以可以通过混用来实现更为方便。

     

     

    后记:来到埃塞俄比亚当志愿者已有近两个月了,工作一点挑战也没有,又打战了,在这种网络只有56K的鸟地方,真是一种痛苦。百无聊赖之际,想想以前在国内一直没有时间空下来好好研究一下vs.net2005,(主要是更喜欢vs.net 2003的小巧),特写此文,结果写完了,一直上了不博客园,直到今天才打开,真是郁闷呀。

  • 相关阅读:
    559. N叉树的最大深度
    999. 车的可用捕获量
    1051. 高度检查器
    238. 除自身以外数组的乘积
    【Go】Go语言的%d,%p,%v等占位符的使用
    【Java】commons-lang3中DateUtils类方法介绍
    【Java】时间戳与Date相互转换
    【Linux】crontab定时任务用用法
    【Java】使用Lambda排序集合
    【PBFT】拜占庭容错
  • 原文地址:https://www.cnblogs.com/tongzhenhua/p/642327.html
Copyright © 2011-2022 走看看