如何将二进制字符串格式的rowversion转换为字节数组

时间:2011-07-12 11:55:53

标签: c# .net asp.net

我需要使用rowversionsql server 2008列中的byte列的字符串表示转换为c#

String rowversion = "0x000000000001265E";

我想将其转换为byte[]

任何想法?

3 个答案:

答案 0 :(得分:2)

试试这个

String rowversion = "0x000000000001265E";
byte[] mybyteArray = Convert.FromBase64String(rowversion);

答案 1 :(得分:0)

char[] chrArr = rowVersion.ToCharArray();

byte[] objBytes = new byte[charArr.Length];

for(int x=2;x<charArr.Length;x++)
{
objBytes[i] = (byte)charArr[x];

}

答案 2 :(得分:0)

using System;
using System.Linq;    
byte[] RowVersionConverter(string rowVersion)
    {
       var value = ulong.Parse(rowVersion.SubString(2), System.Globalization.NumberStyles.HexNumber);
       return BitConverter.GetBytes(value);
    }

这可能对你有用。但我认为这很可能与 SQL 期望的顺序相反。所以你可能想要这个:

byte[] RowVersionConverter(string rowVersion)
{
   var value = ulong.Parse(rowVersion.SubString(2), System.Globalization.NumberStyles.HexNumber);
   return BitConverter.GetBytes(value).Reverse().ToArray();
}