2010-07-15 134 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

相关问题