PDA

View Full Version : ذخيره عكس در بانك



vahid_
سه شنبه 14 تیر 1390, 11:36 صبح
من چطوري ميتونم يك عكس رو در بانك sql ذخيره كنم:ناراحت:

ramin90
سه شنبه 14 تیر 1390, 11:52 صبح
منم همین سوال رو دارم. یه چندتا کد تو فروم پیدا کردم. فقط یکی به من بگه فیلد عکس رو در اس کیو ال از چه نوعی تعریف کنم؟ image یا binary?

vahid_
سه شنبه 14 تیر 1390, 12:16 عصر
binary ..............................

navidiran
سه شنبه 14 تیر 1390, 12:47 عصر
نقل قول: نوشتن کلاس ذخیره عکس در sql و نمایش در Grid




1
2
3
4
5
6
7
byte[] array = ((byte[])conveter.ConvertTo(pictureBox1.Image, typeof(byte[])));

per.Picture = array;









per.Picture = array این هم یعنی : DataRowObj[pictrue]=array;

ااگر در همین سایت جستجو کنی خیلی لینک در این مورد می تونی پیدا کنی
http://barnamenevis.org/showthread.p...نک&highlight

http://barnamenevis.org/showthread.php?271434-نوشتن-کلاس-ذخیره-عکس-در-sql-و-نمایش-در-Grid&p=1200396&highlight=#post1200396

bazardeh
سه شنبه 14 تیر 1390, 14:44 عصر
من از این طریق این کار انجام دادم


MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
byte[] arrImage = ms.GetBuffer();


برای استفاده کلاس MemoryStream باید io را using کنید

اگر بدرت می خوره کد کاملم رو بزارم

vahid_
سه شنبه 14 تیر 1390, 14:51 عصر
ممنون بزار

bazardeh
سه شنبه 14 تیر 1390, 15:25 عصر
نشد مرتب کنم هر جایی مشکل داشتی بگو بهت بگم


try
{
if (pictureBox1.Image == null)
pictureBox1.Image = Image.FromFile(@".\User-man.png");
MemoryStream ms = new MemoryStream(); // io قرار دارد در
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
byte[] arrImage = ms.GetBuffer();
ms.Close();

con.Open();
if (textBox4.Text == "" || textBox2.Text == "" || textBox1.Text == "")
{
MessageBox.Show("دانش آموز جدید به دلیل کامل نبودن مشخصات ثبت نشد", "پیغام", MessageBoxButtons.OK, MessageBoxIcon.Warning);
con.Close();
frm_displaystudent_Load(sender, e);
}
else
{
SqlCommand cm = new SqlCommand("insert into student(codstu,name,fname,namefa,codmali,addres,pi c,yeartavalod,tell,monthtavalod,daytavalod,Birthpl ace)values(@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11,@12)");
cm.Connection = con;
cm.Parameters.Clear();
cm.Parameters.AddWithValue("@1", textBox4.Text);
cm.Parameters.AddWithValue("@2", textBox1.Text);
cm.Parameters.AddWithValue("@3", textBox2.Text);
cm.Parameters.AddWithValue("@4", textBox3.Text);
cm.Parameters.AddWithValue("@5", textBox5.Text);
cm.Parameters.AddWithValue("@6", textBox6.Text);
cm.Parameters.AddWithValue("@7", SqlDbType.Binary).Value = arrImage;
cm.Parameters.AddWithValue("@8", numinsert.Text);
cm.Parameters.AddWithValue("@9", textBox8.Text);
cm.Parameters.AddWithValue("@10", cmbmonthbinsert.Text);
cm.Parameters.AddWithValue("@11", cmbdayinsert.Text);
cm.Parameters.AddWithValue("@12", textBox11.Text);
cm.ExecuteNonQuery();
MessageBox.Show("مشخصات دانش آموز جدید با موفقیت ثبت شد", "پیغام", MessageBoxButtons.OK, MessageBoxIcon.Information);

con.Close();
frm_displaystudent_Load(sender, e);
dataGridView1.Enabled = true;
}
}
catch (Exception ex)
{
MessageBox.Show("کد دانش آموزی را غلط وارد کرده اید" + "" + ex.Message, "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

mohammad_2039
چهارشنبه 15 تیر 1390, 07:25 صبح
با تشکر از دوستان
من یه سوال در این رابطه داشتم. بعد از ذخیره کردن عکس ها در دیتا بیس اگه بخوایم اونها رو در یه لیست ویو به همراه چند تا فیلد توضیحات نمایش بدیم باید چیکار کنیم ؟

B.I.O.H.A.Z.A.R.D
چهارشنبه 15 تیر 1390, 10:34 صبح
سلام.

اینم یه نمونه برنامه که الان نوشتم. ولی توجه داشته باشید اینطوری حجم دیتابیس خیلی زیاد میشه.
سوالی بود در خدمتم

ramin90
چهارشنبه 15 تیر 1390, 11:56 صبح
میشه کد نمایش عکس ار بانک در فرم رو هم بذارید؟

B.I.O.H.A.Z.A.R.D
چهارشنبه 15 تیر 1390, 13:20 عصر
میشه کد نمایش عکس ار بانک در فرم رو هم بذارید؟

سلام دوست عزیز

باید عرض کنم خدمتتون که دکمه Load همین کار رو میکنه

البته دستور sqlcommand مربوط به این دکمه رو اینطوری تغییر بدید تا درست بشه.


SqlCommand SCM = new SqlCommand("select * from Table1 where id = '" + label1.Text + "'", SC);

ببخشید که اینو یادم رفته بود.