将SQL二进制转换为字节数组

给定一些存储在SQL二进制字段中的数据:

0x83C8BB02E96F2383870CC1619B6EC... 

我想将它转换为字节数组,但似乎我不能直接将其转换为如下字节:

 byte[] someBytes = (byte) 0x83C8BB02E96F2383870CC1619B6EC...; 

我在这里想念的是什么?

存储在SQL字段中的数据是二进制的。 您引用的’0x83 ..’字符串只是该二进制数据的hex表示。

如果您只想将hex数据复制/粘贴到C#代码中(如您所写),那么您需要将其从hex转换为二进制。 .NET为这类事提供了一个(相当模糊的)类:

 using System.Runtime.Remoting.Metadata.W3cXsd2001.SoapHexBinary public byte[] ToBytes(string hex) { var shb = SoapHexBinary.Parse(hex); return shb.Value; } public void TestConvert() { byte[] someBytes = ToBytes("83C8BB02E96F2383870CC1619B6EC"); } 

如果您的二进制数据来自数据库的forms与复制/粘贴字符串不同,则需要提供有关设置的更多信息。

你的演员是错的。

 byte[] someBytes = (byte[]) 0x83C8BB02E96F2383870CC1619B6EC...; 

我有同样的问题,我偶然发现了这个问题。 经过进一步的研究,我尝试像上面那样进行铸造并且有效。