Asp.net 2.0 Webpart 資料庫的遷移 aspnet_regsql.exe Access

來源:互聯網
上載者:User
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

       微軟提供了一個資料庫配置程式,可以方便的在SQLServer2000和SQLServer2005上進行webpart的資料庫配置 。

       1.首先運行SQLServer

       2.然後運行C:"WINDOWS"Microsoft.NET"Framework"v2.0.50727"aspnet_regsql.exe 會出現一個圖形化的操作介面,根據提示便可自動產生一個名為aspnetdb的庫。

       3.開啟vs.net 2005,建立一個網站,往頁面上拖一個webpartmanager,運行一下,出錯。因為你還沒有配web.config呀,而且vs.net2005與vs.net2003有所不同,預設是沒有web.config檔案的,需要我們自己增加,(當然你也可以直接修改C:"WINDOWS"Microsoft.NET"Framework"v2.0.50727"CONFIG下預設的web.config,但是我不推薦)。

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

 <connectionStrings>

    <removename="LocalSqlServer" />

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

        providerName="System.Data.SqlClient" />

 </connectionStrings>

完成後的web.config為

<?xmlversion="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。

        -->

        <compilationdebug="false" />

        <!--

            通過 <authentication> 節可以配置 ASP.NET 使用的

            安全身分識別驗證模式,

            以標識傳入的使用者。

        -->

        <authenticationmode="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新聞群組發了個貼子也沒人回答,有些英文資料也是語焉不詳,不成系統。

 下面我來說一下詳細的過程。

   首先你需要一個access的Provider以及相對應的資料庫。之前我曾經從網上找了一個access的provider,並嘗試把SQLServer版的表匯出成Access,結果發現這條路是行不通的,因為不匹配。

       目前在英文google裡能找到兩個access的Provide

       一個是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的小巧),特寫此文,結果寫完了,一直上了不部落格園,直到今天才開啟,真是鬱悶呀。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.