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

标签 c# asp.net sql-server telerik arrays

我有一个大问题。
我上传了图片并得到了 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

最佳答案

您可能想要 encode it , 而不是直接转换。

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

Convert.ToBase64String(byteArrayForImage);

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

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

Convert.FromBase64String(stringFromDB)

关于c# - 如何在数据库的文本字段中存储 byte[] 并检索它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14835338/

相关文章:

c# - 如何在内容占位符中循环控件

php - 大型数据库的性能,更快的方法 : finding value with php or sql?

sql-server - 如何最好地结合 SQL Server 数据从 Active Directory 检索用户数据

c# - 如何在 CLR Procedure 中使用 Json Parser?

C#如何锁定文件

c# - 使用中继器进行购物车

asp.net - 用户从另一个网站或通过 Web 服务登录到 MVC 应用程序

c# - 缺少 Microsoft 时区

c# - 如何在使用数据库的 WCF 服务中处理并发

c# - 如何自动将 IEnumerable<T> 转换为 csv 文件?