c#/asp.net显示数据库中的二进制数据

c#/asp.net显示数据库中的二进制数据,c#,sql,C#,Sql,我一直在寻找如何从数据库中检索二进制数据。我的查询工作正常,因为它在SQL管理器中显示二进制数据 但在VisualStudio2010中,它只是向我显示,我个人认为这不是问题所在,但如果我尝试检索它并将其存储在变量中,它就是空的。只要与二进制数据无关,任何其他查询都可以工作 我不想使用datagrid或任何东西,因为我只需要它作为变量 SqlCommand CMDbinary = new SqlCommand("SELECT Binary_field AS binary "

我一直在寻找如何从数据库中检索二进制数据。我的查询工作正常,因为它在SQL管理器中显示二进制数据

但在VisualStudio2010中,它只是向我显示
,我个人认为这不是问题所在,但如果我尝试检索它并将其存储在变量中,它就是空的。只要与二进制数据无关,任何其他查询都可以工作

我不想使用datagrid或任何东西,因为我只需要它作为变量

SqlCommand CMDbinary = new SqlCommand("SELECT Binary_field AS binary "
                                      + "FROM BIN_table", abc_conn);

SqlDataReader Bin_retriever = CMDbinary.ExecuteReader();
while (Bin_retriever.Read())
{
    BIN.Add(Bin_retriever["binary"].ToString());
}
abc_conn.Close();
我知道这不是完整的代码,但这就是它出错的地方,我假设我必须做一些特殊的事情来显示二进制信息,因为(我再说一遍)如果我将
binary\u字段
更改为
UID
(这是数据库中的
varchar

在此方面的任何帮助都是非常欢迎的,提前谢谢

 Bin_retriever["binary"].ToString()
看起来很致命。对于二进制数据,您可以在此处获得
字节[]
。您不能只调用
ToString()
,您可能会得到类型名。那么,您希望如何显示它?妖术

byte[] raw = (byte[]) Bin_retriever["binary"];
现在,格式由您选择。例如:

var builder = new StringBuilder(raw.Length * 2);
for(int i = 0 ; i < raw.Length ; i++)
    builder.Append(raw[i].ToString("x2"));
string hex = builder.ToString();
var builder=新的StringBuilder(原始长度*2);
for(int i=0;i
我实际上不想显示它,我需要处理它,因为我在数据库中有一个二进制字符串,由几个较小的8位二进制字符串组成。我想在开始时显示它的原因是看它是否有效。我确实得到了文本系统。byte[]谢谢你的帮助,是的,我确实想要十六进制的。