【问题标题】:How to retrieve a byte array stored as Varbinary(max)如何检索存储为 Varbinary(max) 的字节数组
【发布时间】:2014-06-11 08:56:22
【问题描述】:

我正在尝试在数据库 (T-SQL) 中存储一个字节数组,目前我正在使用 varbinary(max)。它成功存储了数据,但我不知道如何将其转换回字节数组。有谁知道怎么做?我在数据库中使用了正确的数据类型吗?

StoreTestData(Encoding.ASCII.GetBytes("test123".ToCharArray()));

结果 0x74657374313233

如何将我的结果再次转换为 byte[]?

【问题讨论】:

  • 我原以为从数据库中检索二进制字段会给你一个字节数组——你得到了什么?此外,您还没有向我们展示任何用于检索代码的代码,因此很难告诉您您做错了什么。
  • 实际上,我没有检索它。那是我问怎么做..我发布了发布在数据库中的结果。
  • 所以与其说是如何将结果放入字节数组,不如说是如何从数据库中获取结果?

标签: c# sql


【解决方案1】:

只需将阅读器对象转换回字节数组即可。
在这种情况下,数据库字段“logo”是 varbinary(MAX)

    ... 

    SqlDataReader reader = cmd.ExecuteReader();

    byte[] tempLogo = (byte[])(reader["logo"]);

    ...

【讨论】:

    【解决方案2】:

    相信你可以在这里找到这个问题的答案:

    C# ByteArray to string conversion and back

    【讨论】:

    • 泰杰西。我不知道为什么有人低估了你的答案。我会接受这个。没有意识到我应该把它当作一个字符串来读。
    • 没问题,非常感谢。很高兴我能帮上忙。
    • 我没有投反对票,但我认为这是因为这没有讨论如何从数据库中检索数据以及何时从数据库中检索数据,如果它是 varbinary(max),那么我d 期望它作为字节数组被检索。因此,这个答案似乎没有回答这个问题。但是,如果它解决了您的问题,那就太好了。
    • 仅链接的答案通常是 Stack Overflow 上的frowned upon。随着时间的推移,链接可能会萎缩并变得不可用,这意味着您的答案将来对用户毫无用处。如果您可以在实际帖子中提供答案的一般详细信息,并引用您的链接作为参考,那将是最好的。
    猜你喜欢
    • 1970-01-01
    • 2014-07-29
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    相关资源
    最近更新 更多