PDA

View Full Version : سوال: ذخیره عکس در دیتابیس SQL



alias136790
جمعه 20 اردیبهشت 1392, 02:58 صبح
من میخوام یه عکس رو تو دیتابیس ذخیره کنم و از یکی از این متدها برای تبدیل عکس به []byte استفاده میکنم:

public byte[] GetPhoto(string filePath)
{
FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(stream);
byte[] photo = reader.ReadBytes((int)stream.Length);
reader.Close();
stream.Close();
return photo;
}
یا

public byte[] GetPhoto(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();
}
و سپس عکس رو بصورت Image در دیتایس ذخیره میکنم.
این متدها کار میکنه و عکس در دیتابیس ذخیره میشه، اما مشکل اینجاست که اگر من برنامه رو باز کنم، بیام عکس شماره 1
رو در دیتابیس ذخیره کنم بعد بخوام عکس شماره 2 رو ذخیره کنم،در دیتابیس باز دوباره عکس شماره 1 ذخیره میشه.

لطفا کمک کنید این ایراد رو برطرف کنم.

gholami146
جمعه 20 اردیبهشت 1392, 07:06 صبح
چرا استریم رو بعد از فرا خانی ازاد سازی نمی کنید
Free
از گزینه ترای استفاده کنید و در پایان عملیات حتما متغییر مورد استفاده خود رو آزاد و به حافظه برگردونید
موفق باشید

alias136790
جمعه 20 اردیبهشت 1392, 16:04 عصر
من برای آزاد کردن متغیر FileSteam از
Dispose(); استفاده میکنم ولی باز متغیر آزاد نمیشه و همیشه همون عکس شماره یک رو تو دیتابیس ذخیره میکنه.
لطفا کمک کنید

alias136790
شنبه 21 اردیبهشت 1392, 06:50 صبح
من حتی برای تبدیل عکس به []byte
از متد:
byte[] b = File.ReadAllbyte(PathImage);
استفاده میکنم ولی باز همیشه عکسی تو دیتابیس ذخیره میشه که همون اول آپلود کردم . ینی اگه عکس شماره یک ذخیره کنم بعد دفه بعد باز همون عکس شماره یک ذخیره میشه.
اصلا مشخص نیست مشکل از کجاست !

alias136790
شنبه 21 اردیبهشت 1392, 12:31 عصر
ینی کسی تا حالا به این مشکل برنخورده!