【问题标题】:Convert byte array represented for sql_variant typed column value to long/int64将代表 sql_variant 类型列值的字节数组转换为 long/int64
【发布时间】:2017-07-30 07:12:16
【问题描述】:

我有一个包含 10 个元素的字节数组值,取自我的数据库表中的 sql_variant 列,并希望将其转换为长值。我试过了。

 byte []a = new byte[10]{ 127, 1, 0, 202, 154, 59, 0, 0, 0, 0 };
 long i = BitConverter.ToInt64(a, 0);
 Console.WriteLine("{0}", i);

但它没有给我正确的结果。我希望它是10000000000

谢谢你能给我一些关于 C# 中的类或方法的想法,我可以研究一下。

【问题讨论】:

标签: c# sql-server sql-variant


【解决方案1】:

10000000000 在十六进制表示法中是 02540BE400。

此值的字节数组倒序为:

byte[] a = new byte[10] { 0x00, 0xE4, 0x0B, 0x54, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00};

或以十进制表示:

byte[] a = new byte[10] { 0, 228, 11, 84, 2, 0, 0, 0, 0, 0 };

对于这个数组,您的函数返回预期结果:10000000000。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 2015-07-23
    • 2019-10-19
    • 2010-11-26
    • 1970-01-01
    相关资源
    最近更新 更多