Click here to Skip to main content
15,923,902 members
Home / Discussions / C#
   

C#

 
QuestionDelegate in C# Pin
hung_ngole11-Jan-06 16:44
hung_ngole11-Jan-06 16:44 
AnswerRe: Delegate in C# Pin
Curtis Schlak.11-Jan-06 17:07
Curtis Schlak.11-Jan-06 17:07 
QuestionConfigurationSettings threadsafe? Pin
pokksey11-Jan-06 15:11
pokksey11-Jan-06 15:11 
Questionhow insert a row in Access Database? Pin
Sasuko11-Jan-06 13:43
Sasuko11-Jan-06 13:43 
AnswerRe: how insert a row in Access Database? Pin
Christian Graus11-Jan-06 14:08
protectorChristian Graus11-Jan-06 14:08 
GeneralRe: how insert a row in Access Database? Pin
Sasuko11-Jan-06 14:19
Sasuko11-Jan-06 14:19 
GeneralRe: how insert a row in Access Database? Pin
Christian Graus11-Jan-06 14:38
protectorChristian Graus11-Jan-06 14:38 
Questionread multiple images from database Pin
jung197511-Jan-06 12:41
jung197511-Jan-06 12:41 
I am trying to read image ( binary data type) directly from database. I can read if the image is single ,but if there are multiple images put together( inside one column) , I am not be able to read it. Can you take a look at below code and let me know what I am doing wrong?


using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using System.Data.SqlClient;
using System.IO;
using System.Drawing.Imaging;
using System.Collections.Generic;

public partial class GetImage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
const int oleOffset = 78;
const int oleTypeStart = 20;
const int oleTypeLength = 12;
string TransactionId;
string sql;
Bitmap bmp;
byte[] imageBytes;
TransactionId = (string)this.Request.QueryString["TransactionId"];
if (TransactionId == null) return;

TransactionId = int.Parse(TransactionId).ToString();
sql = "Select Image from Image where TransactionId=" + TransactionId;
ConnectionStringSettings cnSetting =
ConfigurationManager.ConnectionStrings["AppConnectionString6"];
using (SqlConnection cn = new SqlConnection(cnSetting.ConnectionString))
{
using (SqlCommand cmd = new SqlCommand(sql, cn))
{
cn.Open();
using (SqlDataReader dr = cmd.ExecuteReader())
{
dr.Read();
imageBytes = (byte[])dr.GetValue(0);
}
}
}

if (imageBytes == null || imageBytes.Length == 0) return;
MemoryStream tempStream;
string type = System.Text.Encoding.ASCII.GetString(
imageBytes, oleTypeStart, oleTypeLength);
if (type == "Bitmap Image")
{
tempStream = new MemoryStream(
imageBytes, oleOffset, imageBytes.Length - oleOffset);

}
else
{
tempStream = new MemoryStream(
imageBytes, 0, imageBytes.Length);

}
bmp = new Bitmap(tempStream);
// bmp = new Bitmap(bmp, bmp.Height / 3 , bmp.Width / 2);
Response.ContentType = "Image/gif";
bmp.Save(Response.OutputStream, ImageFormat.Gif);
Response.End();


}



private void _GetMultipleImages ()
{
const int oleOffset = 78;
const int oleTypeStart = 20;
const int oleTypeLength = 12;
string TransactionId;
string sql;
byte[] imageBytes;
TransactionId = (string)this.Request.QueryString["TransactionId"];
if (TransactionId == null) return;

TransactionId = int.Parse(TransactionId).ToString();
sql = "Select Image from Image where TransactionId=" + TransactionId;
ConnectionStringSettings cnSetting =
ConfigurationManager.ConnectionStrings["AppConnectionString6"];
using (SqlConnection cn = new SqlConnection(cnSetting.ConnectionString))
{
using (SqlCommand cmd = new SqlCommand(sql, cn))
{
cn.Open();
using (SqlDataReader dr = cmd.ExecuteReader())
{
dr.Read();
imageBytes = (byte[])dr["Image"];
}
}
}

if (imageBytes == null || imageBytes.Length == 0) return;
ArrayList imgList = new ArrayList();

using (SqlConnection cn = new SqlConnection(cnSetting.ConnectionString))
{
sql = "select FrontImageOffset, FrontImageSize from CDData where TransactionId=" + TransactionId;
using (SqlCommand cmd = new SqlCommand(sql, cn))
{
cn.Open();
using (SqlDataReader dr = cmd.ExecuteReader())
{
if (dr.HasRows)
{
if (dr.Read())
{
//
// Make a static copy of the buffer information
//
long imagebytesLen = imageBytes.Length;
List<byte> imgBytes = new List<byte>(imageBytes);

do
{
long offset = (long)dr["FrontImageOffset"];
long length = (long)dr["FrontImageSize"];
//
// Determine if we have enough buffer to read the bytes
//
if (imagebytesLen >= (offset + length))
{
//
// allocate a new buffer for our image and then
// make a copy of it from our image buffer.
//
byte[] newimage = new byte[length];
imgBytes.CopyTo(Convert.ToInt32 (offset), newimage, 0, newimage.Length);
//
// Now add us to our list
//
imgList.Add(newimage);
}

} while (dr.NextResult());
}
}

dr.Close();
}
}
}

//
// Do we have any images?
//
if (imgList.Count > 0)
{
//
// Loop through the list and concatenate all the images
// into one huge image.
//
List<byte> bigImage = new List<byte>();
for (int i = 0; i < imgList.Count; ++i)
{
bigImage.AddRange((byte[])imgList[i]);
}
//
// Create hte bitmap from the buffered data
//
byte[] data = bigImage.ToArray();
MemoryStream tempStream = new MemoryStream(imageBytes);
tempStream.Position = 0;

System.Drawing.Image bmp = System.Drawing.Image.FromStream(tempStream);

// bmp = new Bitmap(bmp, bmp.Height / 3 , bmp.Width / 2);
Response.ContentType = "Image/gif";
bmp.Save(Response.OutputStream, ImageFormat.Gif);
Response.End();
}
}
}
AnswerRe: read multiple images from database Pin
Guffa11-Jan-06 12:51
Guffa11-Jan-06 12:51 
GeneralRe: read multiple images from database Pin
jung197511-Jan-06 13:03
jung197511-Jan-06 13:03 
GeneralRe: read multiple images from database Pin
Christian Graus11-Jan-06 13:07
protectorChristian Graus11-Jan-06 13:07 
GeneralRe: read multiple images from database Pin
jung197511-Jan-06 13:09
jung197511-Jan-06 13:09 
GeneralRe: read multiple images from database Pin
Christian Graus11-Jan-06 13:12
protectorChristian Graus11-Jan-06 13:12 
GeneralRe: read multiple images from database Pin
jung197512-Jan-06 10:31
jung197512-Jan-06 10:31 
Question[GDI+] avoid flickering for a moving panel part 2 Pin
Sasuko11-Jan-06 12:04
Sasuko11-Jan-06 12:04 
AnswerRe: [GDI+] avoid flickering for a moving panel part 2 Pin
Christian Graus11-Jan-06 13:06
protectorChristian Graus11-Jan-06 13:06 
AnswerRe: [GDI+] avoid flickering for a moving panel part 2 Pin
Curtis Schlak.11-Jan-06 13:12
Curtis Schlak.11-Jan-06 13:12 
GeneralRe: [GDI+] avoid flickering for a moving panel part 2 Pin
Sasuko11-Jan-06 13:41
Sasuko11-Jan-06 13:41 
GeneralRe: [GDI+] avoid flickering for a moving panel part 2 Pin
Curtis Schlak.11-Jan-06 13:58
Curtis Schlak.11-Jan-06 13:58 
GeneralRe: [GDI+] avoid flickering for a moving panel part 2 Pin
Sasuko11-Jan-06 14:13
Sasuko11-Jan-06 14:13 
GeneralRe: [GDI+] avoid flickering for a moving panel part 2 Pin
exhaulted12-Jan-06 3:39
exhaulted12-Jan-06 3:39 
QuestionCombobox DataSource Pin
code_wiz11-Jan-06 11:57
code_wiz11-Jan-06 11:57 
AnswerRe: Combobox DataSource Pin
Christian Graus11-Jan-06 11:58
protectorChristian Graus11-Jan-06 11:58 
GeneralRe: Combobox DataSource Pin
code_wiz11-Jan-06 12:45
code_wiz11-Jan-06 12:45 
GeneralRe: Combobox DataSource Pin
Christian Graus11-Jan-06 13:03
protectorChristian Graus11-Jan-06 13:03 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.