2016-12-19 67 views
0

字节字符串存储字节[]我有如何使用的EntityFramework

0x4D5A90000300000004000000FFFF0000B80000000000000040 ...从SQL Server生成

如何使用EntityFramework将字节string插入数据库中的byte[]列?

+1

你确定*你有它作为一个字符串?我期望SQL Server将它作为byte []返回,但是大多数工具将*表示为'0x {hex}'形式的字符串。有什么理由不能让SQL Server只返回'varbinary'? –

+0

我们正在编写用于默认数据管理的自定义工具。 –

+0

@Ravinda没有告诉我为什么你将二进制数据表示为文本...应该没有必要这样做。用于存储二进制文件的'varbinary(max)'应该没问题。 –

回答

2

根据我上面的评论,我强烈怀疑这里要做的最好的事情是从服务器以byte []的形式返回数据;这应该很好,很容易做到。但是,如果您的使用string,那么您需要解析它 - 取出0x前缀,将长度除以2以获取字节数,然后使用循环和解析每个2字符子字符串Convert.ToByte(s, 16)。像(完全未测试):

int len = (value.Length/2)-1; 
var arr = new byte[len]; 
for(int i = 0; i < len;i++) { 
    var s = value.Substring((i + 1) * 2, 2); 
    arr[i] = Convert.ToByte(s, 16); 
} 
相关问题