.Net 學習 Access 資料庫的基礎測試

最近論壇很多篇類似的發問,我覺得把一些基本東西拿出來談,不要一直在相同的東西上打轉。

其實不論是哪個資料庫,或是哪種語言,或是哪種工具,最後不外是使用 SQL 語法,所以最終都會回到 SQL 語法測試上。
關聯式資料庫都遵循 ANSI SQL 1992 以後的版本,大部分相容,少數沒實做,最新的標準是 2006,少數資料庫已經支援到 SQL 06 的部分規格。

SQL 最後的結果不外乎輸出資料表或影響列數,所以最簡單的測試環境就是 Access 本身提供的 View ,Access 的 View 可以自行編輯 SQL 語法,使用這個環境來測試 SQL 語法最佳,由於 .Net 環境還要測試連線字串,所以基本上都在 VS2005/2008 環境來測試。

當然有了好工具,還需要中文說明,所以使用 Access 2003 以前的使用者,可在本機找,最好是備份下來,因為 Access 2007 放在網站上:
JETSQL40.CHM SQL語法參考 (http://office.microsoft.com/client/helpcategory.aspx?CategoryID=CH100728991028&ns=MSACCESS&lcid=1028)
JETERR40.CHM 錯誤訊息參考

一般來說,SQL 語法能達到的,程式也能達到,而資料庫軟體對 SQL 處理已經進行過最佳化了,大部分不知道自己寫快還是放在 SQL 語法快時,建議初學者盡量以 SQL 語法達成,除非你已經能進行效能評估了,否則沒事別自己寫,因為你寫的可能又拉雜,又慢,還不如交給資料庫處理,這也是資料庫存在的價值。

SQL 語法絕對比程式碼簡單,這只是純敘述性的文字,但是 SQL 語法並不是只有 SELECT ,上面說明書所列的內容如果都能讀過一遍的話,只能說恭喜你入門了,因為接下來才要開始針對 SQL 語法進行最佳化,來提高效能,此外請利用 VS2005/2008 確實測試過線上手冊的範例。

萬年範例:
北風資料庫 (2007: http://office.microsoft.com/zh-tw/templates/TC012289971028.aspx?pid=CT101428651028)

首先在 VS2005 左側的伺服器總管加入北風資料庫,為什麼要這樣做?這樣做的好處是 VS2005 介面上能看到的、能做到的,表示你都可以用 .Net 程式完成,包含讀取欄位型態等,只是看你怎樣實做,就不用再問能不能做的無意義問題了:

另外看兩張圖,是連 Access 2007 的檔案,因為有人問過,所以特別摘兩張圖片出來,Oledb 可以直接從下拉式選單選,Odbc 可以從 dsn 建個資料來源,要是不想用 dsn ,就直接 key in 連線字串:

當你能完成這裡時,恭喜你,理論上你再也不用為連線字串困擾,你只要簡單的操作就可以順利建成連線字串,在伺服器總管你新建的連接上,按滑鼠右鍵、屬性,你就可以看到連線字串,複製貼上總會吧?

若是你要直接在專案中加入資料來源時,在精靈的下拉式選單就可以找到伺服器總管內的所有連接:

之後你在 DataGridView 中就可以選擇並查詢,完全不用寫任何一行程式碼:
 

你可以直接在左側伺服器總管展開你的 Access 檔,找到檢視內的物件打開,看看它的 SQL 語法為何:

當你要測試自建的 SQL 語法時,你可以用新增查詢:

而此功能就是你最好的學習平台,你可以把線上手冊的範例輸入,測試輸出的表格是否是你要的。

當然,也可以測試 Insert / Update / Delete 語法,測試前請先記得備份資料庫,免得一不小心無法復原。

參數式查詢,主要是為了避免隱碼攻擊,但是我認為應該先會字串式的查詢後,再來學參數式的查詢,有時做自我的 Join 可能會涉及很複雜的語法,或是使用 SQL 語法做分頁,不是參數式查詢做不到,而是問題會變得複雜導致除錯困難,甚至很難去寫,所以學會字串式的查詢仍然是必要的,因為這有助於你除錯與開發。

(註:圖剪多了後,忘了我原先到底還要說啥,就先寫到這,有想起來再編輯加入)

廣告
Categories: 資料庫 | 發表留言

文章分頁導航

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

在WordPress.com寫網誌.

%d 位部落客按了讚: