2010-07-15 132 views
0

我有一整套假設特定連接字符串的數據庫訪問函數。在我的應用程序調用有沒有辦法使用VB.NET中函數調用結果的默認參數?

myList = DB_MyTable.GetTableItems() 

和內GetTableItems()我有類似

Dim connection As SqlConnection = MyDB.GetConnection 

所以連接字符串在代碼一個地方,我調用一個方法來得到它。

我現在正在運行的是我想重複使用相同的數據庫函數,但使用不同的連接字符串。我可以很容易地重寫像DB_MyTable.GetTableItems()這樣的所有函數,因爲它們是從腳本生成的,但是在主應用程序代碼中,我需要處理每個函數調用,現在需要知道我想要使用的連接字符串。

我試圖改變參數GetTableItems()這樣的:

Public Shared Function GetTableItems(Optional ByVal useThisString as String = MyDB.GetConnection) As List(Of MyItems) 

在能夠希望通過在默認情況下,我已經使用在大多數的代碼串,但我得到了一個錯誤說默認值必須是一個常量表達式。這意味着在任何地方都會使用特定的連接字符串,這是我不想做的。

有沒有一種方法可以完成我之後的工作,或者是否需要將連接字符串設置爲必需的參數並更改我的應用程序中的所有調用以匹配新簽名?

一如既往的感謝!

回答

1

你可以讓你的默認值爲空字符串嗎?然後,在你的函數中,如果useThisString變量爲空,那麼使用default,否則使用你傳入的那個?一個小骯髒的人,但幾乎沒有。

+0

這確實發生在我身上!也許我一開始就避開它,因爲每一次電話會在開始時進行檢查,這可能是一種表現拖累。但是這樣可以節省大部分改造現有代碼的工作。 – John 2010-07-15 18:52:51

+0

我結束了這樣做,它工作正常。謝謝! – John 2010-07-15 22:00:55

相關問題