Vb.net 如何设置项目参数?

Vb.net 如何设置项目参数?,vb.net,ssis,Vb.net,Ssis,在我尝试执行的SSIDB节点中的包中,我有一个包参数和一个项目参数 我可以通过向execute方法提供ExecutionValueParameterSet来设置包参数。是这样的: Dim setValueParameters As New ObjectModel.Collection(Of PackageInfo.ExecutionValueParameterSet) Dim exp As New PackageInfo.ExecutionValueParameterSet exp.Object

在我尝试执行的SSIDB节点中的包中,我有一个包参数和一个项目参数

我可以通过向execute方法提供ExecutionValueParameterSet来设置包参数。是这样的:

Dim setValueParameters As New ObjectModel.Collection(Of PackageInfo.ExecutionValueParameterSet)
Dim exp As New PackageInfo.ExecutionValueParameterSet
exp.ObjectType = 30
exp.ParameterName = sp.Name
If sp.Value IsNot Nothing Then
     Select Case sp.TypeCode
          Case TypeCode.String
                exp.ParameterValue = sp.Value
          Case Else
          exp.ParameterValue = Convert.ChangeType(sp.Value, sp.TypeCode)
     End Select
End If

setValueParameters.Add(exp)
package.Execute(use32BitRuntime, er, setValueParameters)
现在,这对包参数很有效。但我无法在项目级别设置参数

我尝试了以下方法:

package.Parent.Parameters(sp.Name).Set(ParameterInfo.ParameterValueType.Literal, sp.Value)
但是,我仍然得到参数丢失的错误。如果我在设置后选中
package.Parent.Parameters(sp.Name).ValueSet
parameter,则该参数为false


有什么想法吗?

感谢@billinkc,我发现我应该在相同的ExecutionValueParameterSet上设置项目参数,但使用exp.ObjectType=20作为项目参数。

问题在于ObjectType。分配给他们的魔法数字有意义

  • 20项目参数
  • 30包参数
  • 50执行参数
您还可以通过查询integration services目录了解可用的内容

SELECT * FROM SSISDB.catalog.object_parameters AS OP
另见


另请参见此SSIS WIKI页面,了解有关参数的信息:

在为项目参数引用
ObjectType
时,是否仍使用值30?它应该是20Ahh,您是对的,项目参数的值应该是20,我不应该这样设置值:package.Parent.parameters(sp.Name).set(ParameterInfo.ParameterValueType.Literal,sp.value)谢谢!