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

本文关键字:二进制 数据 数据库 显示 asp net | 更新日期: 2023-09-27 18:01:36

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

但在Visual Studio 2010中,它只是显示我<Binary Data>,我个人认为这不是问题,但如果我试图检索它并将其存储在变量中,它只是空的。任何其他查询工作,只要它与二进制数据无关…

我不想使用数据网格或任何东西,因为我只需要它作为一个变量。

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_field更改为UID(这是数据库中的varchar),它就会起作用。

任何帮助,这将是非常欢迎的,提前感谢!

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

 Bin_retriever["binary"].ToString()

是致命的。对于二进制数据,您可以期望在这里获得byte[]。你不能只调用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();