2009-03-05 49 views
1

我是一位以前的經典ASP程序員,有時也是編寫我的第一個ASP.NET應用程序的PHP程序員。我非常喜歡改進的ADO.NET函數,但我感覺需要編寫一個數據庫類。部分我想整合實際與數據庫交互的代碼,部分我想減少重複的感覺。如何編寫支持參數化查詢的數據庫類

一個簡單的數據庫類並不難,但我使用參數化查詢作爲我的安全措施之一。我正在努力如何將它融入課堂。我編寫了一個函數,通過傳入表名和列名來返回數據庫中列的數據類型,但我無法想到從SQL查詢中獲取表和列名的可靠方法。

我的這個類的設計是有一個用於選擇的Query()函數和一個用於插入/更新/刪除的Execute()函數。 (不反對擁有更多的公共職能,但不希望超越自己。)這兩個函數都爲參數提供了一個SQL字符串和一個SortedList。通過查找SQL字符串中的參數名稱並在等號前面查看,可以獲取列名稱。同樣,查詢插入,更新或刪除時獲取表名的操作應該非常簡單,因爲您一次只能處理一個表。最大的擔憂是選擇,因爲可能有一個或多個連接,內部選擇等。

我是否在錯誤的方向?任何我沒有想到的事情會讓我的生活變得更輕鬆或更難?有人用任何可以提供建議的語言爲此寫了一個類。

回答

1

第二個電話會找到一個適合你的久經考驗的車輪,特別是如果這是你第一次進入aspnet的話......還有很多事情可以讓你忙碌起來。

會給SubSonic增加一個建議,這個建議可能比nHibernate要輕一些,但這取決於你項目的性質,它們都是很棒的工具,並且在過去的幾年裏爲我節省了數月的時間。

0

這聽起來像我的「簡單的數據庫類」是隱藏太多的細節,需要使用它的類。

我寫過一些包含SqlCeEngine的類,並且暴露了諸如「LookupDescription(String Code)」之類的方法......我認爲這種設計是你應該關注的東西。並且,考慮查看LINQ。它有很多提供。

1

我認爲,因爲這是您在ASP.NET中的第一次體驗,所以建議您查看Linq to SQL。請試試some tutorials,以便在嘗試編寫任何Linq查詢之前瞭解其工作原理。

我可以想到在你的情況下不使用Linq to SQL的唯一原因是,如果你不使用SQL Server(或者現在或將來需要支持其他數據庫),或者你不能使用.NET 3.5出於某種原因運行時。

祝你好運