第一次跟別人做東西,自己的一點經驗,寫下來,雖然比較菜,但還是要做點記錄,如有錯誤缺漏,請各位不吝賜教,謝謝: )
以前都是用asp.net 與sqlserver2000 結合做東西的,這次是用access,雖然是第一次用,但感覺與sqlserver2000的用法區別不大,以下對二者的用法做比較:
sqlserver2000:
1>命名空間
using system.data;
using system.data.sqldb;
2>連接語句等
主要記錄access用法:
1>命名空間:
using system.data;
using system.data.oledb;
2>連接語句:
string constring="provider=microsoft.jet.oledb.4.0; data source=";
constring+=server.mappath(@"/jlgps/db/jlgps.mdb");
//以上語句中,“@”表示絕對的字符串,也就是說"/"在這就不需用"http://"來表示了第一個"/"表示是從根目錄(如c:/inetpub/wwwroot)下找"jlgps"這個目錄,如果不加"/"表示從當前應用程序目錄下(jlgps)找,那么這里就要寫成@"db/jlgps.mdb"了.建議用后者,前者取出來可能是絕對路徑,后者則是相對路徑,出錯幾率較小。
oledbconnection con=new oledbconnection(constring);
con.open();//這樣數據庫連接完畢。
3>命令對象:
大致用法與sqlserver的相同,只是名稱有點變化:
sqlserver的以sql開頭,如sqlcommand cmd=new sqlcommand();
而access的都以 oledb開頭,如:oledbcommand,oledbdatareader....等
4>涉及到access數據庫的用戶名和密碼的問題:
開始我的access的mdb文件沒有設置用戶名和密碼,用以上的連接語句可以連接成功,后來我想為了稍微安全點,想設置數據庫mdb文件的打開密碼,于是我便打開mdb文件,在"工具",-"安全"-"設置數據庫密碼"中設好了密碼,但是之后便連接不上數據庫,我便試著在連接語句中加類似sqlserver中的uid,pwd等,但都沒成功,最后經過一番嘗試,找到了一個解決問題的方法:
不要在"工具",-"安全"-"設置數據庫密碼"中設置密碼,而是在"工具",-"安全"-"用戶與組帳戶"中設置密碼即可,這樣,既實現了打開mdb文件時要輸入密碼,而數據庫連接語句還是原來的,不要做任何改動即可連接數據庫。
5>access的字段類型問題,access的字段類型與oledbtype的類型很難一一吻合,那么取相似的即可,比如access中的備注型,那么就在oledbtype中用longvarchar即可。比如:
oledbparameter para=new oledbparameter("@profun",oledbtype.longvarchar);
para.value=myaddpro.profun;//一個產品對象的功能描敘參數,備注型
cmd.parameters.add(para);
今天把做好的東西發給了client(是她叫我做東西,就此稱呼吧).結果她用配置asp程序的方法把程序配置好,然后運行,結果肯定不行拉~(只看到靜態的界面,與數據庫打交道的動態部分都不能顯示).
為了解決此問題,我專門找了臺沒裝.net環境的機子測試,此機子僅裝了windows2000,帶iis。以下是我的總結,你的建議將是對我最好的幫助: )
第一步,我首先在此機子上裝了microsoft.net.framework1.1軟件包。
第二步,再裝上microsoft data access components 2.7(mdac),否則運行程序時提示oledb 不能用,需要安裝此組件。
第三步,設置好本機的ip,我設置為192.168.0.20(可隨便設,只要不是自動獲取)
第四步,打開iis,在“默認web站點”的屬性中把ip設置為127.0.0.1(因為我在開發程序的時候就是這個ip,當然可以改成其他的ip(192.168.0.20),但是要在程序項目文件夾中找到的以webinfo為后綴的文件,以記事本方式打開,將其web urlpath中的路徑改為相應的ip地址即可).
第五步,在iis中的“默認web站點”屬性中的“本地路徑”設置為對應的程序所在目錄,在“文檔”項中添加程序首頁的文件名(index.aspx)即可在ie地址欄中打入http://127.0.0.1運行程序。
另外一個問題:
在我機子上本來運行好好的程序,到別的機子上便可能出現的問題,出現最多問題的就是絕對路徑的問題,比如說,我要顯示一張圖片,我先用server.mappath()取其所在文件夾路徑再加上其名稱來顯示,那么這樣就會是絕對路徑了,在別的機子訪問的時候便可能出現錯誤,把原來的代碼改為直接賦值相對路徑:@"文件夾名/"+圖片名,即可。
|
新聞熱點
疑難解答
圖片精選