SSIS:更新传递给VB.NET ScriptTask的RecordSet

时间:2010-06-13 03:48:25

标签: ssis

我想要完成的是使用此脚本任务不断插入生成的RecordSet我知道如何在脚本中访问它但是我不知道如何在更改DataTable后更新它。 / p>

代码如下:

    Dim EmailsToSend As New OleDb.OleDbDataAdapter
    Dim EmailsToSendDt As New DataTable("EmailsToSend")
    Dim CurrentEmailsToSend As New DataTable
    Dim EmailsToSendRow As DataRow

    EmailsToSendDt.Columns.Add("Id", System.Type.GetType("System.Integer"))
    EmailsToSendDt.Columns.Add("EmailAddress", System.Type.GetType("System.String"))
    EmailsToSendDt.Columns.Add("EmailMessage", System.Type.GetType("System.String"))

    EmailsToSendRow = EmailsToSendDt.NewRow()
    EmailsToSendRow.Item("Id") = Id
    EmailsToSendRow.Item("EmailAddress") = Email
    EmailsToSendRow.Item("EmailMessage") = EmailMessage.ToString

    EmailsToSend.Fill(CurrentEmailsToSend, Dts.Variables("EmailsToSend").Value)
    EmailsToSendDt.Merge(CurrentEmailsToSend, True)

基本上我的目标是在新数据表中创建一行。获取当前记录集,合并结果,以便我得到我的结果DataTable。现在我只需要为我的脚本更新ReadWriteVariable。不知道我是否必须做任何特殊的事情,或者我是否可以直接将其分配给DataTable I.E. Dts.Variables(“EmailsToSend”)。Value = EmailsToSendDt

感谢先进的帮助。

1 个答案:

答案 0 :(得分:3)

以下是我之前的一个解决您问题的答案: How can I store a dataset object into a package variable of data type object?

简短的回答是,您可以像上面提到的那样,通过将对象类型变量的值设置为脚本中的数据表变量来实现。