问题 BigInt转换

多项式

新成员
已加入
2020年11月30日
留言内容
4
编程经验
Beginner
我有一个在Windows AD中引用的字段-其数据类型bigint,在SSIS包中使用以下代码,在获取System .__ ComObject作为输出

如果(entry.Properties ["pwdlastset"].Value != null)
{
Output0Buffer.Pwdlastsetdate = entry.Properties ["pwdlastset"].Value.ToString();
}

有人知道获得正确输出的方法吗?

谢谢
 

跳伞者

工作人员
已加入
2019年4月6日
留言内容
2,610
地点
弗吉尼亚州切萨皮克
编程经验
10+
请参见StackOverflow:

 

多项式

新成员
已加入
2020年11月30日
留言内容
4
编程经验
Beginner
C#:
        如果(entry.Properties ["pwdlastset"].Value != null)
                    {
                        long值=(long)entry.Properties ["pwdLastSet"][0];
                        DateTime pwdLastSet = DateTime.FromFileTimeUtc(value);
                        Output0Buffer.Pwdlastsetdate = pwdLastSet.ToString();
                    }
 
由主持人最后编辑:

约翰·H

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
1,076
地点
挪威
编程经验
10+
insertcode3.png
 

约翰·H

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
1,076
地点
挪威
编程经验
10+

跳伞者

工作人员
已加入
2019年4月6日
留言内容
2,610
地点
弗吉尼亚州切萨皮克
编程经验
10+
这对我有用:
C#:
var root = new DirectoryEntry(myLdapPath);
var searcher = new DirectorySearcher(root);
searcher.Filter = $"(SAMAccountName={myAccountName})";
var result = searcher.FindOne();
var cn = result.Properties["cn"][0];
Console.WriteLine($"{cn}");
var pwdLastSet = (long)result.Properties["pwdLastSet"][0];
Console.WriteLine($"{pwdLastSet}");
var lastSet = DateTime.FromFileTimeUtc(pwdLastSet);
Console.WriteLine($"{lastSet}");

产生了以下输出:
C#:
<redacted for privacy>
132515641876496955
12/04/2020 14:03:07

是的,我只是在几个小时前更改了密码。
 

多项式

新成员
已加入
2020年11月30日
留言内容
4
编程经验
Beginner
嗨,谢谢你以上

我该如何适应

如果(entry.Properties ["pwdlastset"].Value != null)
{
long值=(long)entry.Properties ["pwdLastSet"][0];
DateTime pwdLastSet = DateTime.FromFileTimeUtc(value);
Output0Buffer.Pwdlastsetdate = pwdLastSet.ToString();
}
 

跳伞者

工作人员
已加入
2019年4月6日
留言内容
2,610
地点
弗吉尼亚州切萨皮克
编程经验
10+
我的7-10行与您的3-5行基本相同。我刚刚发布了该代码,以表明它可以按我最初链接到的StackOverflow文章所宣传的那样工作。

我的建议是实际使用调试器,而不是仅运行代码。当您到达引发异常的那一行时,请查看在那里存储了哪种对象。
 
最佳 底部