[C#] Comment enregistrer une image dans une tables access ?
2 réponses
Philippe Cazaux-Moutou
Bonjour
j ai une form et une classe (ou sont crées mes datasets et objtes pour sql)
depuis la form je passe mon image a la classe
Code :
_AjoutFilm.Fi_Jacquette = pctBoxCover.Image;
dans ma classe je récupere l image comme ceci
Code :
private Image fi_Jacquette;
public Image Fi_Jacquette
{
get { return fi_Jacquette; }
set { fi_Jacquette = value; }
}
Puis dans ma classe je veux inserer des données, et donc mon image dans une
table
try
{
using (DbConnection cn = new
OleDbConnection(methode.doConnectionString()))
{
using (DbCommand cmd = new OleDbCommand(_strSql,
(OleDbConnection)cn))
{
cmd.CommandType = CommandType.Text;
.....
DbParameter FI_Jacquette = new
OleDbParameter("@FI_Jacquette", OleDbType.Binary);
FI_Jacquette.Value = fi_Jacquette;
cmd.Parameters.Add(FI_Jacquette);
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Simon Mourier [SoftFluent]
Il faut d'abord créer un tableau d'octet (byte[]) correspondant à l'instance d'Image en question, comme l'indique l'exception. Par exemple:
FI_Jacquette.Value = ToBytes(fi_Jacquette);
public static byte[] ToBytes(Image image) { if (image == null) throw new ArgumentNullException("image");
using (MemoryStream stream = new MemoryStream()) { image.Save(stream, ImageFormat.Jpeg); return stream.GetBuffer(); } }
Simon. www.softfluent.com
"Philippe Cazaux-Moutou" a écrit dans le message de news: 44919964$0$847$
Bonjour
j ai une form et une classe (ou sont crées mes datasets et objtes pour sql)
depuis la form je passe mon image a la classe
Code : _AjoutFilm.Fi_Jacquette = pctBoxCover.Image; dans ma classe je récupere l image comme ceci
Code : private Image fi_Jacquette;
public Image Fi_Jacquette { get { return fi_Jacquette; } set { fi_Jacquette = value; } } Puis dans ma classe je veux inserer des données, et donc mon image dans une table
try { using (DbConnection cn = new OleDbConnection(methode.doConnectionString())) { using (DbCommand cmd = new OleDbCommand(_strSql, (OleDbConnection)cn)) { cmd.CommandType = CommandType.Text;
.....
DbParameter FI_Jacquette = new OleDbParameter("@FI_Jacquette", OleDbType.Binary); FI_Jacquette.Value = fi_Jacquette; cmd.Parameters.Add(FI_Jacquette);
return RetourValeurInsertion; } } } catch (Exception e) { tou marche bien si je mets la patie image en commentaire sinon j ai une erreur
Citation: + $exception {"Échec de la conversion de la valeur de paramètre d'un Bitmap en un Byte[]."} System.Exception {System.InvalidCastException}
Qui peut m aider car ca fait 1 mois que je butes la dessus
merci
Il faut d'abord créer un tableau d'octet (byte[]) correspondant à l'instance
d'Image en question, comme l'indique l'exception. Par exemple:
FI_Jacquette.Value = ToBytes(fi_Jacquette);
public static byte[] ToBytes(Image image)
{
if (image == null)
throw new ArgumentNullException("image");
using (MemoryStream stream = new MemoryStream())
{
image.Save(stream, ImageFormat.Jpeg);
return stream.GetBuffer();
}
}
Simon.
www.softfluent.com
"Philippe Cazaux-Moutou" <ancestrologieAROBASE@wanadoo.fr> a écrit dans le
message de news: 44919964$0$847$ba4acef3@news.orange.fr...
Bonjour
j ai une form et une classe (ou sont crées mes datasets et objtes pour
sql)
depuis la form je passe mon image a la classe
Code :
_AjoutFilm.Fi_Jacquette = pctBoxCover.Image;
dans ma classe je récupere l image comme ceci
Code :
private Image fi_Jacquette;
public Image Fi_Jacquette
{
get { return fi_Jacquette; }
set { fi_Jacquette = value; }
}
Puis dans ma classe je veux inserer des données, et donc mon image dans
une table
try
{
using (DbConnection cn = new
OleDbConnection(methode.doConnectionString()))
{
using (DbCommand cmd = new OleDbCommand(_strSql,
(OleDbConnection)cn))
{
cmd.CommandType = CommandType.Text;
.....
DbParameter FI_Jacquette = new
OleDbParameter("@FI_Jacquette", OleDbType.Binary);
FI_Jacquette.Value = fi_Jacquette;
cmd.Parameters.Add(FI_Jacquette);
Il faut d'abord créer un tableau d'octet (byte[]) correspondant à l'instance d'Image en question, comme l'indique l'exception. Par exemple:
FI_Jacquette.Value = ToBytes(fi_Jacquette);
public static byte[] ToBytes(Image image) { if (image == null) throw new ArgumentNullException("image");
using (MemoryStream stream = new MemoryStream()) { image.Save(stream, ImageFormat.Jpeg); return stream.GetBuffer(); } }
Simon. www.softfluent.com
"Philippe Cazaux-Moutou" a écrit dans le message de news: 44919964$0$847$
Bonjour
j ai une form et une classe (ou sont crées mes datasets et objtes pour sql)
depuis la form je passe mon image a la classe
Code : _AjoutFilm.Fi_Jacquette = pctBoxCover.Image; dans ma classe je récupere l image comme ceci
Code : private Image fi_Jacquette;
public Image Fi_Jacquette { get { return fi_Jacquette; } set { fi_Jacquette = value; } } Puis dans ma classe je veux inserer des données, et donc mon image dans une table
try { using (DbConnection cn = new OleDbConnection(methode.doConnectionString())) { using (DbCommand cmd = new OleDbCommand(_strSql, (OleDbConnection)cn)) { cmd.CommandType = CommandType.Text;
.....
DbParameter FI_Jacquette = new OleDbParameter("@FI_Jacquette", OleDbType.Binary); FI_Jacquette.Value = fi_Jacquette; cmd.Parameters.Add(FI_Jacquette);
return RetourValeurInsertion; } } } catch (Exception e) { tou marche bien si je mets la patie image en commentaire sinon j ai une erreur
Citation: + $exception {"Échec de la conversion de la valeur de paramètre d'un Bitmap en un Byte[]."} System.Exception {System.InvalidCastException}
Qui peut m aider car ca fait 1 mois que je butes la dessus
merci
Philippe Cazaux-Moutou
Merci
ca marche
"Simon Mourier [SoftFluent]" a écrit dans le message de news:
Il faut d'abord créer un tableau d'octet (byte[]) correspondant à l'instance d'Image en question, comme l'indique l'exception. Par exemple:
FI_Jacquette.Value = ToBytes(fi_Jacquette);
public static byte[] ToBytes(Image image) { if (image == null) throw new ArgumentNullException("image");
using (MemoryStream stream = new MemoryStream()) { image.Save(stream, ImageFormat.Jpeg); return stream.GetBuffer(); } }
Simon. www.softfluent.com
"Philippe Cazaux-Moutou" a écrit dans le message de news: 44919964$0$847$
Bonjour
j ai une form et une classe (ou sont crées mes datasets et objtes pour sql)
depuis la form je passe mon image a la classe
Code : _AjoutFilm.Fi_Jacquette = pctBoxCover.Image; dans ma classe je récupere l image comme ceci
Code : private Image fi_Jacquette;
public Image Fi_Jacquette { get { return fi_Jacquette; } set { fi_Jacquette = value; } } Puis dans ma classe je veux inserer des données, et donc mon image dans une table
try { using (DbConnection cn = new OleDbConnection(methode.doConnectionString())) { using (DbCommand cmd = new OleDbCommand(_strSql, (OleDbConnection)cn)) { cmd.CommandType = CommandType.Text;
.....
DbParameter FI_Jacquette = new OleDbParameter("@FI_Jacquette", OleDbType.Binary); FI_Jacquette.Value = fi_Jacquette; cmd.Parameters.Add(FI_Jacquette);
return RetourValeurInsertion; } } } catch (Exception e) { tou marche bien si je mets la patie image en commentaire sinon j ai une erreur
Citation: + $exception {"Échec de la conversion de la valeur de paramètre d'un Bitmap en un Byte[]."} System.Exception {System.InvalidCastException}
Qui peut m aider car ca fait 1 mois que je butes la dessus
merci
Merci
ca marche
"Simon Mourier [SoftFluent]" <simon.mourier@mycompany.com> a écrit dans le
message de news: Oye56VRkGHA.4716@TK2MSFTNGP03.phx.gbl...
Il faut d'abord créer un tableau d'octet (byte[]) correspondant à
l'instance d'Image en question, comme l'indique l'exception. Par exemple:
FI_Jacquette.Value = ToBytes(fi_Jacquette);
public static byte[] ToBytes(Image image)
{
if (image == null)
throw new ArgumentNullException("image");
using (MemoryStream stream = new MemoryStream())
{
image.Save(stream, ImageFormat.Jpeg);
return stream.GetBuffer();
}
}
Simon.
www.softfluent.com
"Philippe Cazaux-Moutou" <ancestrologieAROBASE@wanadoo.fr> a écrit dans le
message de news: 44919964$0$847$ba4acef3@news.orange.fr...
Bonjour
j ai une form et une classe (ou sont crées mes datasets et objtes pour
sql)
depuis la form je passe mon image a la classe
Code :
_AjoutFilm.Fi_Jacquette = pctBoxCover.Image;
dans ma classe je récupere l image comme ceci
Code :
private Image fi_Jacquette;
public Image Fi_Jacquette
{
get { return fi_Jacquette; }
set { fi_Jacquette = value; }
}
Puis dans ma classe je veux inserer des données, et donc mon image dans
une table
try
{
using (DbConnection cn = new
OleDbConnection(methode.doConnectionString()))
{
using (DbCommand cmd = new OleDbCommand(_strSql,
(OleDbConnection)cn))
{
cmd.CommandType = CommandType.Text;
.....
DbParameter FI_Jacquette = new
OleDbParameter("@FI_Jacquette", OleDbType.Binary);
FI_Jacquette.Value = fi_Jacquette;
cmd.Parameters.Add(FI_Jacquette);
"Simon Mourier [SoftFluent]" a écrit dans le message de news:
Il faut d'abord créer un tableau d'octet (byte[]) correspondant à l'instance d'Image en question, comme l'indique l'exception. Par exemple:
FI_Jacquette.Value = ToBytes(fi_Jacquette);
public static byte[] ToBytes(Image image) { if (image == null) throw new ArgumentNullException("image");
using (MemoryStream stream = new MemoryStream()) { image.Save(stream, ImageFormat.Jpeg); return stream.GetBuffer(); } }
Simon. www.softfluent.com
"Philippe Cazaux-Moutou" a écrit dans le message de news: 44919964$0$847$
Bonjour
j ai une form et une classe (ou sont crées mes datasets et objtes pour sql)
depuis la form je passe mon image a la classe
Code : _AjoutFilm.Fi_Jacquette = pctBoxCover.Image; dans ma classe je récupere l image comme ceci
Code : private Image fi_Jacquette;
public Image Fi_Jacquette { get { return fi_Jacquette; } set { fi_Jacquette = value; } } Puis dans ma classe je veux inserer des données, et donc mon image dans une table
try { using (DbConnection cn = new OleDbConnection(methode.doConnectionString())) { using (DbCommand cmd = new OleDbCommand(_strSql, (OleDbConnection)cn)) { cmd.CommandType = CommandType.Text;
.....
DbParameter FI_Jacquette = new OleDbParameter("@FI_Jacquette", OleDbType.Binary); FI_Jacquette.Value = fi_Jacquette; cmd.Parameters.Add(FI_Jacquette);