У меня есть база данных sql server, которая возвращает байт для изображения. Если я использую мастер адаптера таблиц и задаю для него хранимую процедуру и предварительный просмотр данных, он возвращает изображение. Это автоматически превращает его в изображение в данных предварительного просмотра. Я не вижу это как строку Ints или что-то еще.
Как я могу отобразить его на моей веб-странице asp.net с gridview и objectdatasource?
Я искал и нашел, где поле изображения может указывать на URL на другой странице, которая выполняет преобразование байтов, но я не уверен, что это лучше. Я нашел другой способ, который создает временный файл.
Просто пытаюсь найти лучший способ сделать это.
edit - я пытаюсь не использовать временный файл. Если я не могу использовать gridview, нормальное поле изображения в порядке.
asp.net 2.0, c #.
Спасибо за любую помощь.
редактировать
закончилось:
protected void Page_Load(object sender, EventArgs e)
{
string id = Request["id"];
string connstr = "DSN=myserver";
OdbcConnection conn = new OdbcConnection(connstr);
OdbcCommand cmd = new OdbcCommand("{call mySP (?)}", conn);
cmd.CommandType = CommandType.StoredProcedure;
// Add the input parameter and set its properties.
OdbcParameter parameter = new OdbcParameter();
parameter.ParameterName = "@MyParam";
parameter.OdbcType = OdbcType.VarChar;
parameter.Direction = ParameterDirection.Input;
parameter.Value = id;
// Add the parameter to the Parameters collection.
cmd.Parameters.Add(parameter);
conn.Open();
OdbcDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
byte[] buffer = (byte[])dr[0];
Response.ContentType = "image/jpg";
Response.BinaryWrite(buffer);
Response.Flush();
}
}
и это на странице вызова:
<asp:Image ID="Image1" ImageAlign="Middle" ImageUrl="show.aspx?id=123" Runat="server" />