我有一个函数,可以接受许多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
属性。
首先,您的代码进行编译,但最后一个参数不是值,而是源列名称。
但是您可以使用 With
语句来分配Value
:
Dim myStr As String = RunSQL("spMyStoredProc",
{
New Data.SqlClient.SqlParameter("@FieldName", Data.SqlDbType.NVarChar, 50) With {.Value = "MyValue"}
})
请参见: 对象初始值设定项