Reputation: 1
hi i am trying to retrieve an image from sql server database using this code and the exception generate this error (parameter not valid) plz help me and i am using image type in the table not a blob
SqlCommand select = new SqlCommand(vsql, vCon);
try
{
SqlDataAdapter dp = new SqlDataAdapter(select);
DataSet ds = new DataSet("etudiant");
byte[] MisDatos = new byte[0];
dp.Fill(ds,"etudiant");
DataRow myRow = ds.Tables["etudiant"].Rows[0];
MisDatos = (byte[])myRow["image"];
MemoryStream ms = new MemoryStream(MisDatos);
System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);
ms.Position = 0;
pictureBox1.Image = Image.FromStream(ms);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Upvotes: 0
Views: 1825
Reputation: 21477
Here's a blob of code using datareader for a web page:
using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("SELECT photo,photomimetype,photofilename FROM MyTable WHERE id=@photoid", conn))
{
cmd.Parameters.Add("@photoid", SqlDbType.Int).Value = photoId;
using(SqlDataReader dr = cmd.ExecuteReader())
{
if (dr.Read())
{
Response.ContentType = dr["photomimetype"].ToString();
Response.AddHeader("content-disposition", "inline; filename=\"" + dr["photofilename"] + "\"");
Response.BinaryWrite((byte[])dr["photo"]);
}
else
{
Response.StatusCode = 404;
}
dr.Close();
}
}
}
Upvotes: 0