如何在数据库的文本字段中存储byte []并检索它

时间:2013-02-12 14:55:53

标签: c# asp.net sql-server telerik bytearray

我有一个很大的问题 我上传了图片并获得了byte[] 在数据库中,我有NVARCHAR(MAX)字段,无法更改 我做了什么,并保存在数据库中我以后不能把它作为图像 我试过.ToString()不起作用 我试过这个:

private byte[] GetBytes(string str)
        {
            byte[] bytes = new byte[str.Length * sizeof(char)];
            System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
            return bytes;
        }
static string GetString(byte[] bytes)
        {
            char[] chars = new char[bytes.Length / sizeof(char)];
            System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
            return new string(chars);
        }

当我试图把它放进RadBinaryImage时,我什么都没得到 这是错误:

 The provided binary data may not be valid image or may contains unknown header

1 个答案:

答案 0 :(得分:9)

您可能希望encode it,而不是直接转换。

我过去成功使用过Radix-64编码。它有一个C#方法,但我还没用过它:

Convert.ToBase64String(byteArrayForImage);

http://msdn.microsoft.com/en-us/library/dhx0d524.aspx

然后您可以使用反向转换来获取字节数组:

Convert.FromBase64String(stringFromDB)