PDA

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



f.beigirad
جمعه 10 آذر 1391, 15:14 عصر
با سلام

تو برنامم قراره حدود 300 عکس .png رو میخوام دونه دونه بیارم.

1 . این عکسا کنار برنامه باشن بهتره یا بریزمشون تو دیتابیس؟

2 . آیا میشه تو دیتابیس sqlite عکس ذخیره کرد؟

3 . چطوری و با چه کدی عکسامو نشون بدم؟

4 . حالا اگه بخوام تو هر صفحم چند تا عکسو نمایش بدم چطور؟

متاسفانه من تازه کارم.و زیاد با دیتابیس آشنا نیستم.:ناراحت::ناراحت:

با تشکر

plus
جمعه 10 آذر 1391, 15:23 عصر
اگه شما همینطوری برنامت دیتابیس داره، خوب میتونی این عکس ها رو هم در قالب جدول تو دیتابیس ذخیره کنی ولی اگه دیتابیس نداره، لزومی نداره که فقط بخاطر این موضوع از دیتابیس استفاده بشه.
به نظر من اگه دیتابیس هم داره، ولی این عکس ها ثابتن و عوض نمیشن، توی فایل کنار برنامه بگذاری راحت تری...
با sqllite کار نکردم کلا ولی هر دیتابیسی معمولا قابلیت ذخیره داده باینری رو داره.
بری نمایش عکس هم...شما تحت وب هستی یا ویندوز؟

f.beigirad
جمعه 10 آذر 1391, 15:44 عصر
سلام.

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

plus
جمعه 10 آذر 1391, 16:32 عصر
شما باید از PictureBox واسه نمایش عکس استفاده کنی.
برای نگهداری عکس باید عکس رو به صورت باینری توی دیتابیس ذخیره کنی و بعد از دیتابیس (به صورت آرایه ای از بایت) بخونی، و با استفاده از متد Image.FromStream داده های باینری رو به عکس تبدیل کنی و به مشخصه Image مربوط به PictureBox بدی...

FastCode
شنبه 11 آذر 1391, 03:45 صبح
در SQLite با نوع BLOB ذخیره میشن.

البته در نظر داشته باشید که SQLite کلاً type نداره و چیزی که راجع بهش صحبت میشه کاملاً (صوری/ سوری/ واقعاً ساعت چهار صبح نمیدونم با چه ۳ ای نوشته میشه) هست

f.beigirad
شنبه 11 آذر 1391, 13:29 عصر
اول از دوستانی که پاسخ دادن تشکر میکنم.


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

اگه میشه موضوعو بیشتر برام باز کنید
ممنون

Mahmoud Zaad
شنبه 11 آذر 1391, 13:38 عصر
سلام
با ذخیره عکس در سایر بانک ها فرق چندانی نداره
SQLiteConnection con = new SQLiteConnection("Data Source=DB.sqlite;Version=3;");
SQLiteCommand cmd2 = new SQLiteCommand("INSERT INTO tb1(nam,famil, ax) VALUES(?,?,?)", con);
cmd2.Parameters.AddWithValue("@nam", txtName.Text);
cmd2.Parameters.AddWithValue("@famil", txtFamil.Text);
if (pbAx.Image != null)
{
MemoryStream ms = new MemoryStream();
pbAx.Image.Save(ms, pbAx.Image.RawFormat);
byte[] arrpic = ms.GetBuffer();
ms.Close();

cmd2.Parameters.AddWithValue("@ax", arrpic);
}
else
{
cmd2.Parameters.AddWithValue("@ax", null);
}
con.Open();
cmd2.ExecuteNonQuery();
con.Close();

آپدیت:

SQLiteCommand cm = new SQLiteCommand("UPDATE tb1 SET nam=@p1, famil=@p2, ax=@p3 WHERE id=@p4", con);
cm.Parameters.AddWithValue("@p1", txtName.Text);
cm.Parameters.AddWithValue("@p2", txtFamil.Text);
if (pbAx.Image != null)
{
MemoryStream ms = new MemoryStream();
pbAx.Image.Save(ms, pbAx.Image.RawFormat);
byte[] arrpic = ms.GetBuffer();
ms.Close();

cm.Parameters.AddWithValue("@p3", arrpic);
}
else
{
cm.Parameters.AddWithValue("@p3", null);
}
cm.Parameters.AddWithValue("@p4",recordID);
con.Open();
cm.ExecuteNonQuery();
con.Close();

مطالب بیشتر (https://www.google.com/search?q=storing+image+in+sqlite%2BC%23&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a) (با همکاری عمو گوگل!)