PDA

View Full Version : ذخیره تصویر در Sqlite



amirxbest
پنج شنبه 25 خرداد 1391, 17:17 عصر
سلام دوستان من یه برنامه ساده جهت کار کردن با بانک sqlite نوشتم.
حالا چگونه عکس رو در دیتا بیس ذخیره کنم.یه مثال از از code project گرفتم به نتیجه نرسیدم.
اگه کسی قبلا کار کرده راهنمایی کنه...
ممنون:خجالت:

amirxbest
پنج شنبه 25 خرداد 1391, 17:55 عصر
دوستان با این کد عسم رو ذخیره کردن.مشکل حل شد:

com.CommandText= "INSERT INTO student(STname,stlastname,stid,files) VALUES(@stname,@stlastname,@stid,@file)";
com.Parameters.AddWithValue("@stname", this.textBox1.Text);
com.Parameters.AddWithValue("@stlastname", this.textBox2.Text);
com.Parameters.AddWithValue("@stid", this.textBox3.Text);
byte[] filebyte;
filebyte = System.IO.File.ReadAllBytes(this.textBox4.Text);
com.Parameters.AddWithValue("@file", filebyte);
com.ExecuteNonQuery();

amirxbest
پنج شنبه 25 خرداد 1391, 18:06 عصر
حالا چجور عکسو بازیابی کنم و تو یه picturebox نشون بدم؟؟چه نوع فیلدی باید در sqlite تعریف کنم؟؟
آیا روش ذخیره کردنم اصولی و درست هست.؟؟

Mahmoud.Afrad
پنج شنبه 25 خرداد 1391, 20:07 عصر
using (SqliteConnection con = new SqliteConnection(cs))
{
con.Open();
SqliteCommand cmd = new SqliteCommand(con);
cmd.CommandText = "SELECT Data FROM Images WHERE Id=1";
byte[] data = (byte[])cmd.ExecuteScalar();
con.Close();
pictureBox1.Image = Image.FromStream(new MemoryStream(data));
}

amirxbest
پنج شنبه 25 خرداد 1391, 20:48 عصر
دوست عزیز میشه یه کم بیشتر توضیح بدی من با این کد یک رکورد رو بازیابی میکنم.

SQLiteCommand cmd1 = new SQLiteCommand(q1, con);
cmd1.Parameters.AddWithValue("@SongName", txtSearch.Text);
con.Open();
SQLiteDataReader dr = cmd1.ExecuteReader();

if (dr.Read())
{
MessageBox.Show("Song Name : " + dr["SongName"].ToString() +
"\nArtist Name : " + dr["ArtistName"].ToString() +
"\nAlbum Name : " + dr["AlbumName"].ToString(), "Song Info");




}
con.Close();


حالا چجور فیلد pic رو که عکس داخلش هست بازیابی کنم.
اینم رشه q
string q1 = "SELECT SongName,ArtistName,AlbumName FROM Music WHERE SongName=?";

Mahmoud.Afrad
پنج شنبه 25 خرداد 1391, 21:03 عصر
یه چیزی تو این مایه ها
SQLiteCommand cmd1 = new SQLiteCommand(q1, con);
cmd1.Parameters.AddWithValue("@SongName", txtSearch.Text);
con.Open();
SQLiteDataReader dr = cmd1.ExecuteReader();

if (dr.Read())
{
MessageBox.Show("Song Name : " + dr["SongName"].ToString() +
"\nArtist Name : " + dr["ArtistName"].ToString() +
"\nAlbum Name : " + dr["AlbumName"].ToString(), "Song Info");

byte[] data = (byte[])dr["pic"];
pictureBox1.Image = Image.FromStream(new MemoryStream(data));
}
con.Close();در ضمن چرا توی دستور sql فیلد pic سلکت نشده؟!

amirxbest
پنج شنبه 25 خرداد 1391, 21:23 عصر
خطا میده فکر کنم ثبت کردنش مشکل داره.
آخه نوع بایت رو نداشت من char گذاشتم فکر کنم بیشتریش مشکل از اینه.
دوست عزیز پروژه رو گذاشتم ببین میتونی مشکل ما رو حل کنی :
دومت گرم.:خجالت:
دانلود (http://amirxbest.persiangig.com/amirxbest/Cs/Learnsqlite.zip)

amirxbest
پنج شنبه 25 خرداد 1391, 21:30 عصر
دوست عزیز دمت گرم درست شد.مشکل از نوع فیلد بود از char به binary تغیر دادم.:قلب: