将为sql_variant类型列值表示的字节数组转换为long / int64

时间:2017-07-30 07:12:16

标签: c# sql-server sql-variant

我从数据库表中的sql_variant列获取了10个元素的字节数组值,并希望将其转换为long值。我试过这个。

 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#中为我提供一些关于课程或方法的想法,请告诉我。我可以查看。

1 个答案:

答案 0 :(得分:0)

十六进制表示法中的

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。