PDA

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



h_jafarnezhad
چهارشنبه 15 مرداد 1393, 16:41 عصر
سلام به همه دوستان
بنا به دلایلی مجبورم که از اکسس استفاده کنم.البته توی ذخیره سازی در اس کیو ال مشکلی ندارم. کدی که اینجا میبینین برای ذخیره سازی در اسکیو ال هست چه تغییری توی کد باید بدم تا بشه برای اکسس ازش ستفاده کرد.

MemoryStream MemoryPicture = new MemoryStream();

pbPicture.Image.Save(MemoryPicture, System.Drawing.Imaging.
ImageFormat.Jpeg);


Class1.com.Parameters.Add("@Picture", SqlDbType.Image).Value = MemoryPicture.GetBuffer();


اینم کد مربوط به بازیابی تصویر

MemoryStream Memory = new MemoryStream();


byte[] ByteArray = (byte[])Class1.datareader.GetValue(14);

Memory.Write(ByteArray, 0, ByteArray.Length);

pbPicture.Image =
Image.FromStream(Memory);

h_jafarnezhad
شنبه 18 مرداد 1393, 12:15 عصر
کسی نیست منو راهنمایی که چن تا مورد مشابه رو خوندم ولی با سبک کد من جور نمیشه

mortezasar
شنبه 18 مرداد 1393, 12:33 عصر
سلام لطفا کدهاتون رو بین تگ های سی شارپ قرار بدین تا بتونم راهنمایی تون کنم

mortezasar
شنبه 18 مرداد 1393, 12:46 عصر
از این کد ها استفاده کنید مشکلتون حل میشه
ابتدا یک متغیر سراسری در فرمتون تعریف کنید

byte[] arrImage;

کد دکمه انتخاب عکس : یک دکمه روی فرم بذارید و خاصیت متن رو انتخاب عکس بذارید و این کد رو در رویداد کلیک دکمه بنویسید

OpenFileDialog dlg = new OpenFileDialog();
Image im = null;
dlg.Filter = "All Pictures|*.bmp;*.gif;*.jpg|Bitmaps|*.bmp|GIFs|*.gi f|JPEGs|*.jpg";
if (dlg.ShowDialog() == DialogResult.OK)
{
im = new Bitmap(dlg.FileName);
MemoryStream mstr = new MemoryStream();
im.Save(mstr, im.RawFormat);
arrImage = mstr.GetBuffer();
pictureBox1.Image = im;
}



این کد هم برای ثبت عکس در دیتابیس

OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\BMNSB\BMNSB.mdb; ");
conn.Open();
OleDbCommand sc = new OleDbCommand("Insert into TBL_PERSON (name,fam,pic,ostan,shahr) values (@name,@fam,@pic,@ostan,@shahr)", conn);
sc.Parameters.AddWithValue("@name", txtname.Text);
sc.Parameters.AddWithValue("@fam", txtfam.Text);
sc.Parameters.AddWithValue("@pic", arrImage);
sc.Parameters.AddWithValue("@ostan", txtostan.Text);
sc.Parameters.AddWithValue("@shahr", txtshahr.Text);
sc.Parameters.AddWithValue("@pic", arrImage);

sc.ExecuteNonQuery();
conn.Close();
FRMADD_Load(null, null);
MessageBoxFarsi.Show("اطلاعات با موفقیت ثبت شد");
arrImage = null;

h_jafarnezhad
یک شنبه 19 مرداد 1393, 11:56 صبح
سلام این کدهایی که استفاده کردم
اینها برای ذخیره تصویر:




{
MemoryStream MemoryPicture = newMemoryStream();
pbPicture.Image.Save(MemoryPicture, System.Drawing.Imaging.ImageFormat.Jpeg);

Class1.com.Parameters.Add("@Picture", OleDbType.Binary).Value = MemoryPicture.GetBuffer();
}

اینا هم برای خواندن از دیتابیس


{

MemoryStream Memory = newMemoryStream();

byte[] ByteArray = (byte[])Class1.datareader.GetValue(14);

pbPicture.Image = Image.FromStream(Memory);

}