我正在寻找一种在 SSIS 数据流任务脚本组件中获取我的属性名称的方法。我一直在寻找高低只找到这个。我一直试图让这段代码工作,但我太新手了,无法理解这里发生的事情,我觉得解释得不是很好(没有冒犯)。
此组件之前的源是使用连接两个表的 SQL 查询。在组件内部,我想将列与列进行比较。然后调用我创建的更新方法来使用SqlConnection 来执行更新。
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
if (Row.TableALastName != Row.TableBLastName)
// Call the update method if the last name did not match.
this.UpdateRecord("TableBLastName", Row.TableALastName.ToString(), Row.TableAAssociateId.ToString());
}
}
private void UpdateRecord(string columnName, string change, string associateId)
{
SqlConnection sqlConnection;
sqlConnection = new SqlConnection(this.Variables.Connection);
string updateQuery = "UPDATE [SomeDataBase].[dbo].[TableB] SET " + columnName + " = " + change + " WHERE [Associate_ID] = " + associateId;
using (SqlCommand cmd2 = new SqlCommand(updateQuery, sqlConnection))
{
sqlConnection.Open();
cmd2.ExecuteNonQuery();
sqlConnection.Close();
}
}
我想以某种方式获得 Row.TableBLastName 的 PropertyName,而不必为我正在做的每个测试硬编码“TableBLastName”,这会很多。
问题是输入缓冲区类没有 Property.GetName() 这也意味着我无法向该类添加方法来获取属性名称,因为每次运行都会重新生成它。