gpt4 book ai didi

sql-server-2008 - LineageID 是字符串或整数

转载 作者:行者123 更新时间:2023-12-04 19:48:34 24 4
gpt4 key购买 nike

我正在尝试获取 SSIS 包中输出列的 lineageId。我在 C# 代码中将 SSIS 包作为 XML 文档遍历。

从包中的节点遍历和获取数据没有问题,但在尝试获取 LineageID 时遇到问题。

许多论坛和文章都说 SSIS 包中生成的 LineageId 是该特定包的唯一整数值​​,因此我尝试将 LineageID 转换为整数值。但它似乎是一个字符串值。

请澄清我的疑问。 lineageid 是 STRING 还是 INT?

如果是 Int 那么请告诉我如何找到它。

foreach (var x in NodeCollection)
{
var outputCollection = x.Elements("outputColumn");
foreach (var output in outputCollection)
{
string Name = output.Attribute("name").Value;
long LineageId = Convert.ToInt64(output.Attribute("lineageId").Value);
}
}

通过断点调试“output.Attribute("lineageId").Value”返回以下值

“Package\DFT\SRC.Outputs[OLE DB 源输出].Columns[TYPE]”

最佳答案

我进行了一个非常相似的练习,发现沿袭 id 值绝对是整数。这是我的代码的摘录:

var nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("DTS", "www.microsoft.com/SqlServer/Dts");
foreach (XmlNode childnode in doc.SelectNodes("//*[@lineageId != '' and @name != '']"))
{
XmlNode ExecutableNode = childnode.SelectSingleNode("ancestor::DTS:Executable[1]", nsmgr);
var taskName = ExecutableNode.SelectSingleNode("DTS:Property[@DTS:Name='ObjectName']", nsmgr).InnerText;
var targetColumnName = childnode.Attributes["name"].Value;
var lineageID = Convert.ToInt32(childnode.Attributes["lineageId"].Value);

我们使用它来将列名映射到 lineageid,以便我们可以解释 SSIS 包抛出的错误消息。

希望这对您有所帮助!

关于sql-server-2008 - LineageID 是字符串或整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17208997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com