0

我有一个可以接受多个SqlParameter对象的函数:

Public Shared Function RunSQL(sqlInput As String, Optional params As Data.SqlClient.SqlParameter() = Nothing) As String

目标基本上是能够根据需要调用函数并在需要时创建参数。

不幸的是,似乎没有任何可用的构造函数允许我指定Value以及 ,SqlDbType而不必添加许多额外的参数(我不需要)。

期望的结果是这样的:

Dim myStr As String = RunSQL("spMyStoredProc", {New Data.SqlClient.SqlParameter("@FieldName", Data.SqlDbType.NVarChar, 50, "MyValue")})

显然,由于此构造函数不存在,我的问题基本上是问是否有任何解决方法,如任何替代方法等,同时仍然允许在函数调用中声明参数的便利?

我宁愿不必事先声明所有参数来设置Value属性。

4

1 回答 1

0

首先,您的代码可以编译,但最后一个参数不是值,而是源列名。

但是您可以使用该With语句来分配Value

Dim myStr As String = RunSQL("spMyStoredProc",
{
    New Data.SqlClient.SqlParameter("@FieldName", Data.SqlDbType.NVarChar, 50) With {.Value = "MyValue"}
})

请参阅:对象初始化器

于 2013-11-05T13:04:00.987 回答