请教各位大大 如何直接读取SQL 2000 的VarBinary 字段的数据并且直接显示出来?

时间:2022-05-14 01:49:38
SQL Server的一个表中有一VarBinary 字段items,记录如下:0xCE000100823E40800000CD000100823D09800000B0208000822BB880F27CB01080004B1E6B803E00CD0001007EAFC68030DDCF0001000000008020288F00000002092480FFFF8F00000002092D80F377CE000100823EB9800000CE0001004B35CD800000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF我想把这个值直接赋给TextBox1,怎么做?
我用 C# 做的 WEB 程序代码如下:
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
   myConnection.Open();
   string sql = "select * from warehouse where accountid='test'";
   SqlCommand myCommand = new SqlCommand(sql,myConnection);
   SqlDataReader dr = myCommand.ExecuteReader();
   if (dr.Read())
   {
    string temp = dr["items"].ToString();
    Response.Write(temp);
   }
   dr.close();
   myConnection.close();

我是要把 BINARY 字段里面的东西直接转成字符串的型式显示出来.就如:Label1.text = "0xCE000100823E40800000CD000100823....."; 这样.

17 个解决方案

#1


不理解楼上说的。

#2


就是直接把 BINARY 字段里面的内容直接显示出来..

#3


高手们来帮帮忙嘛!!! 谢谢....谢谢..

#4


不就是这样吗?
有什么新的问题吗?

#5


Label1.text = dr["items"].ToString();
不就行了吗
你是啥意思呀

#6


對啊,二進制你從數據庫裡直接讀的話就是這樣的文本內容。
Label1.text = dr["items"].ToString();

#7


现在就是不行...这样得出的结果是 Label1.text = System.byte[]

#8


请各位大大帮忙啊..

#9


可以试试
Response.BinaryWrite((byte[])dr["items"]);看输出的是不是

#10


//**************************
可以试试
Response.BinaryWrite((byte[])dr["items"]);看输出的是不是

//*****************************

用这个方法读出来是乱码: 
??????????????????????????????i̘򼿿????????????????????????????????????????????????F?????????????????????L2'3?F?????????????????????????????????????????????????????????????????????????????????????????????$ 2[???????????????????????????????????񑒀? D????????????????????????????????????????S$N?ʀ??????????????????????? 
   
字段中的内容应该像最顶一贴那样.那是我用 SQL 直接导出来的数据.

#11


昨天就在一直关注这个帖子,还是没能解决呀,只有帮你顶了

#12


喝喝.多谢楼主.. 希望有高手能帮忙搞定..DELPHI 做的我倒是找到一个.但是 C# 环境还是搞不定.

#13


呵.写习惯了.老是写成楼主.汗.

#14


今天继续关注!顶

#15


汗。没得人帮忙。。多谢楼上的顶。要是我能解决。我到时候公布方法。

#16


用System.IO.BinaryReader试试

#17


晕,用Response.BinaryWrite((byte[])dr["items"]); 方法是没错的,如果显示的是乱码,那么肯定是编码问题咯。
例子如:

dim filename = "文件名.doc"
            dim lenght = 1234
            dim  contype = "application/msword"
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode( filename , Encoding.UTF8 );
Response.AddHeader("Content-length", length)
Response.AddHeader("Content-Type", contype)
Response.BinaryWrite(sdr("Documentcontent"))'读出数据库中的image字段(Documentcontent)

#1


不理解楼上说的。

#2


就是直接把 BINARY 字段里面的内容直接显示出来..

#3


高手们来帮帮忙嘛!!! 谢谢....谢谢..

#4


不就是这样吗?
有什么新的问题吗?

#5


Label1.text = dr["items"].ToString();
不就行了吗
你是啥意思呀

#6


對啊,二進制你從數據庫裡直接讀的話就是這樣的文本內容。
Label1.text = dr["items"].ToString();

#7


现在就是不行...这样得出的结果是 Label1.text = System.byte[]

#8


请各位大大帮忙啊..

#9


可以试试
Response.BinaryWrite((byte[])dr["items"]);看输出的是不是

#10


//**************************
可以试试
Response.BinaryWrite((byte[])dr["items"]);看输出的是不是

//*****************************

用这个方法读出来是乱码: 
??????????????????????????????i̘򼿿????????????????????????????????????????????????F?????????????????????L2'3?F?????????????????????????????????????????????????????????????????????????????????????????????$ 2[???????????????????????????????????񑒀? D????????????????????????????????????????S$N?ʀ??????????????????????? 
   
字段中的内容应该像最顶一贴那样.那是我用 SQL 直接导出来的数据.

#11


昨天就在一直关注这个帖子,还是没能解决呀,只有帮你顶了

#12


喝喝.多谢楼主.. 希望有高手能帮忙搞定..DELPHI 做的我倒是找到一个.但是 C# 环境还是搞不定.

#13


呵.写习惯了.老是写成楼主.汗.

#14


今天继续关注!顶

#15


汗。没得人帮忙。。多谢楼上的顶。要是我能解决。我到时候公布方法。

#16


用System.IO.BinaryReader试试

#17


晕,用Response.BinaryWrite((byte[])dr["items"]); 方法是没错的,如果显示的是乱码,那么肯定是编码问题咯。
例子如:

dim filename = "文件名.doc"
            dim lenght = 1234
            dim  contype = "application/msword"
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode( filename , Encoding.UTF8 );
Response.AddHeader("Content-length", length)
Response.AddHeader("Content-Type", contype)
Response.BinaryWrite(sdr("Documentcontent"))'读出数据库中的image字段(Documentcontent)