图像数据类型在sybase中是否转换为字节数组?在sybase中应用web服务获取数据集(图像数据类型)。我使用byte[]来获取web服务的返回。然后我使用"response.binarywrite(byte[])“来显示图像。(ASP.NET C#)但是有一个图像失真的问题(当我放大图像时,一些点被遗漏了)。我不知道为什么会有人知道sybase中的image数据类型可以转换为字节数组?
Original Image
Distortion Image
系统:
1 Sybase
Sybase db: 11.9.2
Adaptive server enterprise 12.5.1
Sybase.Data.AseClient:1.0.152.02 ASP.NET C# (Visual Studio2008)
3个IE6
发布于 2009-12-15 16:50:51
最后,我找到了答案。造成这个问题的原因是Sybase对图像访问大小的限制。当图像大小大于37K字节时,输出仍为37k。因此,我在这一步中遗漏了一些字节。解决方案是,您需要设置参数以检索所有数据。部分代码如下:
[WebMethod]
public byte[] Image(string c, string r)
{
//check input ..
ConnectionDatabase connbaseloc = new ConnectionDatabase();
AseConnection conn1 = null;
AseCommand cmd1 = null;
string sqlstr1 = "";
AseDataReader reader = null;
byte[] Imagebytes = null;
try
{
using (conn1 = connbaseloc.Odbcconn_xxx())
{
string setTextCmd = " SET TEXTSIZE 130000"; //set parameter
cmd1 = new AseCommand(setTextCmd, conn1);
cmd1.ExecuteNonQuery();
sqlstr1 = "select ....";
cmd1 = new AseCommand(sqlstr1, conn1);
cmd1.CommandText = sqlstr1;
reader = cmd1.ExecuteReader();
while (reader.Read())
{
Imagebytes = (byte[])reader["Image"];
}
}
}
catch (Exception e)
{
//do something
}
finally
{
if (conn1 != null) conn1.Close();
}
return Imagebytes;
}参数值取决于图片的最大尺寸。
https://stackoverflow.com/questions/1824615
复制相似问题