【问题标题】:Pulling a varbinary from a database and converting to a string [duplicate]从数据库中提取 varbinary 并转换为字符串 [重复]
【发布时间】:2015-05-20 09:02:18
【问题描述】:

我对 C# 还是很陌生(我相信你会说出来),我知道这个问题已经被问过好几次了,但没有一个解决方案对我有用。

我正在尝试从数据库中提取 Varbinary(MAX) 值并将其存储为字符串。我正在使用SqlDataReader 来提升其他一些工作正常的列。我为他们使用的只是.ToString(),但如果我使用ToString() 作为徽标,它会返回System.Byte[]

    public TemplateData(SqlDataReader dr)
    {
        initialiseData();
        if (dr.HasRows)
        {

            Logo = dr["Logo"].ToString();
            TemplateId = dr["TemplateId"].ToString();
            Comment = dr["Comment"].ToString();
            SchemeCode = dr["SchemeCode"].ToString();
            Version = dr["Version"].ToString();
        }
    }

我也遇到了很多问题,但我暂时先解决这些问题。

干杯!

【问题讨论】:

  • varbinary存储为string而不是byte[]的原因是什么?很奇怪的设计,我想。

标签: c# sql


【解决方案1】:

转换为字节数组然后转换,例如:

byte[] data = (byte[])row["BinaryColumn"];
string str = Encoding.UTF8.GetString(data);

然而,这是一个很大的假设,二进制某种字符串,否则你可能需要Base-64:

string str = Convert.ToBase64String(data);

【讨论】:

  • Yeeaaah... 为快速响应干杯,但它不起作用:(
猜你喜欢
  • 2019-12-19
  • 2011-06-24
  • 2013-02-07
  • 1970-01-01
  • 2012-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多