輕松教會(huì)您VS2003數(shù)據(jù)庫的使用與維護(hù)步驟
原來上網(wǎng)我下了很多VS2003數(shù)據(jù)庫的Demo。而我用的是VS2005,我在使用這些小樣時(shí),基本上絕大部分基于VS2003的Asp.net工程都因?yàn)樯贁?shù)文件無法轉(zhuǎn)換而無法加載工程,為此我也苦惱很久,后來終于讓我找到了解決VS2003數(shù)據(jù)庫的辦法。
程序中這樣寫:
- MyConn = new OleDbConnection(System.Configuration.ConfigurationManager.AppSettings["OLEDBCONNECTIONSTRING"]); //
注釋一下:VS2005和VS2003中的ConfigurationSettings寫法不一樣,具體區(qū)別自己查吧
這樣程序運(yùn)行時(shí)經(jīng)常提示諸如以下的錯(cuò)誤:
C:\WINDOWS\system32\~\App_Data\Data.mdb'不是一個(gè)有效的路徑。 確定路徑名稱拼寫是否正確,以及是否連接到文件存放的服務(wù)器。 Data Source=~\App_Data\Data.mdb
就算用絕對(duì)路徑正確,那么移植程序時(shí)還要去修改web.config,所以比較麻煩。
也有在web.config中使用象ASP那樣的Server.MapPath取數(shù)據(jù)庫路徑的,但web.config不認(rèn)識(shí)Server.MapPath,此方法也行不通。
后來通過摸索、參考其它程序,總結(jié)出如下方法,可以方便的移植程序路徑而不必再去修改VS2003數(shù)據(jù)庫路徑。
最近在學(xué)習(xí)這方面的東西,現(xiàn)把有關(guān)心得寫出來,供象我這樣的初學(xué)者參考,以免花一些時(shí)間。
一、安裝平臺(tái)
如果你想在Mobile上使用的數(shù)據(jù)庫從來不會(huì)與PC上的數(shù)據(jù)交流、同步,那有些東西可以選擇Express版。但這樣的情況很少,所以以下這個(gè)步驟還是照做的好,反正它的壞處只是占用一些硬盤空間和較多一點(diǎn)點(diǎn)的資源。
1、Visual Studio 2005。只有它才能開發(fā)WM5.0的應(yīng)用程序(VS2003的好象不能吧)。BT、eMule都可以下載到中文版的VS2005,除非你E文好,否則還是選擇中文版的吧。
2、SQL Server 2005 開發(fā)者版。這個(gè)也有中文版的,BT上可以下載。我裝過企業(yè)版的,但好象沒辦法啟動(dòng)數(shù)據(jù)庫引擎,所以還是開發(fā)者版吧。不要裝那個(gè)Express吧,與它相配的Managment Studio Express版不支持同時(shí)建立SQL Server和SQL Mobile聯(lián)接,在做發(fā)布和訂閱時(shí)很不方便。給客戶時(shí)裝Express版還可以,自己就不要啦,畢竟功能弱了不方便開發(fā)。完整版SQL 2005自帶的Managment Studio就很方便使用了,用過就知道了。
3、SQL Server 2005 Mobile Server Tools。這個(gè)可以不用下載,你在Managment Studio那里選擇建立SQL Server Mobile的聯(lián)接時(shí),它檢測(cè)到你沒裝時(shí),會(huì)自動(dòng)安裝。
4、ActiveSyn。這個(gè)最新的是4.1,也有中文版的。不安裝它,你沒辦法調(diào)試你的WM5.0程序。
5、Smartphone 5.0模擬器。這個(gè)也有中文版,不安裝它,你也沒辦法調(diào)試你的WM5.0程序。#t#
以上五項(xiàng),裝好后就可以寫WM5.0程序了。
硬件方面,512M內(nèi)存不夠用的,會(huì)經(jīng)常讀盤,我NB上的768M就好多了。CPU要快點(diǎn),布置模擬器時(shí)CPU是滿載的。
二、數(shù)據(jù)準(zhǔn)備
我剛開始時(shí),為了得到一個(gè)SQL Mobile的數(shù)據(jù)庫,又不想自己增加數(shù)據(jù),而是想利用原用的SQL Server數(shù)據(jù),花了好多時(shí)間,學(xué)會(huì)了SQL Server里面的“發(fā)布”和“訂閱”功能,從而得到一個(gè)我想要的SDF
1、為SQL Server中的數(shù)據(jù)庫(*.mdf)建立發(fā)布。這里要注意幾點(diǎn):首先要求安裝IIS,其次數(shù)據(jù)庫的名稱不要帶一些不能在文件名中出現(xiàn)的標(biāo)點(diǎn)符號(hào),我就是因?yàn)檫@一點(diǎn)花了三晚的時(shí)間才查出來。
2、為SQL Mobile中的數(shù)據(jù)庫(*.sdf)建立訂閱。只要發(fā)布正確建立,這個(gè)訂閱也就可以順利建立。當(dāng)訂閱建立后,MDF中的數(shù)據(jù)就會(huì)自動(dòng)的跑到SDF中去了。這里要注意一點(diǎn)的是,MDF中有些字段SDF是不支持的,在同步之前要事先調(diào)整好。
這個(gè)準(zhǔn)備的過程幫助文件里有,名為《使用 SQL Server Mobile 創(chuàng)建移動(dòng)應(yīng)用程序》,為了方便,我在下面貼出來。
三、開發(fā)程序
有了平臺(tái),有了數(shù)據(jù),就可以開始工作啦。祝各位學(xué)習(xí)愉快。
我在web.config中的寫法如下:
- <appSettings>
- <add key="SQLConnString" value="provider=microsoft.jet.oledb.4.0;data source="/>
- <add key="dbPath" value="~/App_Data/mydata.mdb"/>
- < SPAN>appSettings>
在VS2003數(shù)據(jù)庫程序中的訪問類我把"SQLConnString"和"dbPath"取出來連接成一個(gè)字符串"CONN_STRING_NON_DTC"
public static readonly string CONN_STRING_NON_DTC = System.Configuration.ConfigurationManager.AppSettings["SQLConnString"].ToString() + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["dbPath"]) + ";";
這是VS2005中的寫法
我把CONN_STRING_NON_DTC定義成static readonly是為了使用方便。
好了,這樣就可以隨便移植你的程序而不用關(guān)心數(shù)據(jù)庫的路徑了,一勞永逸啊,適合我這樣的懶人!