amir200h
شنبه 15 تیر 1392, 14:51 عصر
خوب تو آموزش قبلی نحوه ذخیره کردن عکس از طریق آدرس رو گفتم در لینک زیر
http://barnamenevis.org/showthread.php?407106-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1-%D8%AF%D8%B1-%D8%A8%D8%A7%D9%86%DA%A9-%28%D8%A2%D8%AF%D8%B1%D8%B3-%D8%B9%DA%A9%D8%B3-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D9%85%DB%8C%D8%B4%D9%87-%D9%88-%D8%A7%D8%B2-%D8%B7%D8%B1%DB%8C%D9%82-%D8%A2%D8%AF%D8%B1%D8%B3-%D8%B9%DA%A9%D8%B3-%D8%B1%D8%A7-%D9%84%D9%88%D8%AF-%D9%85%DB%8C%DA%A9%D9%86%DB%8C%D9%85%29
حالا میریم سراغ ذخیره عکس در بانک.
البته من خودم این روشو واسه پروژه های خیلی بزرگ پیشنهاد نمیدم چون به مرور زمان با حجیم شدن حجم بانک سرعت میاد پایین.
قبل از هرچیز باید بانکمون رو طراحی کنیم. یک بانک به نام savepic ایجاد کنید
و یک جدول به نام test که دارای دو فیلد id و pic باشه
فیلد id را از نوع int تعریف کنید
فیلد piv را از نوع varbinary(MAX)
خوب واسه شروع کار نیاز به دو پیکچر باکس داریم
پیکچر باکس اول برای لود کردن و انتخاب عکس به نام : pictureBox1
و پیکچر باکس دوم برای نمایش عکس از درون دیتابیس به نام : pictureBox2
یه تکست باکس برای گرفتن آی دی عکس به نام : textBox1
سه عدد باتن یکی برای انتخاب عکس یکی برای ذخیره عکس و دیگری برای واکشی عکس از دیتا بیس
خوب برای انتخاب عکس و نشان دادنش در پیکچرباکس از کد زیر استفاده میکنیم
private void btnSelectImage_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();//yek shey az OpenFileDialog misazim
DialogResult result = openFileDialog1.ShowDialog(); // ba ein code panjereye OpenFileDialog ra namayesh midim vase entekhabe ax
if (result == DialogResult.OK) // khob age to panjereye OpenFileDialog ax ro entekhab konim va ok ro bezanim sharte zir ejra mishe
{
string addressPic = openFileDialog1.FileName;//ein dastor addrese axe entekhab shodaro mirize to moteghayere addressPic
pictureBox1.Image = new Bitmap(addressPic);
}
}
حالا برای ذخیره عکس از کد زیر استفاده میکنیم
private void button1_Click(object sender, EventArgs e)
{
MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
byte[] arraypic = ms.GetBuffer();
SqlConnection con = new SqlConnection();
con.ConnectionString = "server=(local);database=savepic;trusted_connection =yes";
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "insert into test (id,pic) values (@id,@pic)";
com.Parameters.AddWithValue("@id", textBox1.Text);
com.Parameters.AddWithValue("@pic", arraypic);
con.Open();
com.ExecuteNonQuery();
con.Close();
MessageBox.Show("ok");
}
و برای خواندن عکس از کد زیر استفاده میکنیم
private void button3_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("server=(local);database=savepic;trusted_connection =yes");
SqlCommand cmd = new SqlCommand();
try
{
con.Open();
cmd.Connection = con;
cmd.CommandText = "select pic from test where id=" + textBox1.Text;
byte[] Img = (byte[])cmd.ExecuteScalar();
string str = Convert.ToString(DateTime.Now.ToFileTime());
FileStream fs = new FileStream(str, FileMode.CreateNew, FileAccess.Write);
fs.Write(Img, 0, Img.Length);
fs.Flush();
fs.Close();
pictureBox2.Image = Image.FromFile(str);
}
catch
{
MessageBox.Show("عکس مورد نظر پیدا نشد. لطفا آی دی وارد شده را با دقت وارد کنید", "بروز خطا");
}
finally
{
con.Close();
}
}
http://barnamenevis.org/showthread.php?407106-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%AA%D8%B5%D9%88%DB%8C%D8%B1-%D8%AF%D8%B1-%D8%A8%D8%A7%D9%86%DA%A9-%28%D8%A2%D8%AF%D8%B1%D8%B3-%D8%B9%DA%A9%D8%B3-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D9%85%DB%8C%D8%B4%D9%87-%D9%88-%D8%A7%D8%B2-%D8%B7%D8%B1%DB%8C%D9%82-%D8%A2%D8%AF%D8%B1%D8%B3-%D8%B9%DA%A9%D8%B3-%D8%B1%D8%A7-%D9%84%D9%88%D8%AF-%D9%85%DB%8C%DA%A9%D9%86%DB%8C%D9%85%29
حالا میریم سراغ ذخیره عکس در بانک.
البته من خودم این روشو واسه پروژه های خیلی بزرگ پیشنهاد نمیدم چون به مرور زمان با حجیم شدن حجم بانک سرعت میاد پایین.
قبل از هرچیز باید بانکمون رو طراحی کنیم. یک بانک به نام savepic ایجاد کنید
و یک جدول به نام test که دارای دو فیلد id و pic باشه
فیلد id را از نوع int تعریف کنید
فیلد piv را از نوع varbinary(MAX)
خوب واسه شروع کار نیاز به دو پیکچر باکس داریم
پیکچر باکس اول برای لود کردن و انتخاب عکس به نام : pictureBox1
و پیکچر باکس دوم برای نمایش عکس از درون دیتابیس به نام : pictureBox2
یه تکست باکس برای گرفتن آی دی عکس به نام : textBox1
سه عدد باتن یکی برای انتخاب عکس یکی برای ذخیره عکس و دیگری برای واکشی عکس از دیتا بیس
خوب برای انتخاب عکس و نشان دادنش در پیکچرباکس از کد زیر استفاده میکنیم
private void btnSelectImage_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();//yek shey az OpenFileDialog misazim
DialogResult result = openFileDialog1.ShowDialog(); // ba ein code panjereye OpenFileDialog ra namayesh midim vase entekhabe ax
if (result == DialogResult.OK) // khob age to panjereye OpenFileDialog ax ro entekhab konim va ok ro bezanim sharte zir ejra mishe
{
string addressPic = openFileDialog1.FileName;//ein dastor addrese axe entekhab shodaro mirize to moteghayere addressPic
pictureBox1.Image = new Bitmap(addressPic);
}
}
حالا برای ذخیره عکس از کد زیر استفاده میکنیم
private void button1_Click(object sender, EventArgs e)
{
MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
byte[] arraypic = ms.GetBuffer();
SqlConnection con = new SqlConnection();
con.ConnectionString = "server=(local);database=savepic;trusted_connection =yes";
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "insert into test (id,pic) values (@id,@pic)";
com.Parameters.AddWithValue("@id", textBox1.Text);
com.Parameters.AddWithValue("@pic", arraypic);
con.Open();
com.ExecuteNonQuery();
con.Close();
MessageBox.Show("ok");
}
و برای خواندن عکس از کد زیر استفاده میکنیم
private void button3_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("server=(local);database=savepic;trusted_connection =yes");
SqlCommand cmd = new SqlCommand();
try
{
con.Open();
cmd.Connection = con;
cmd.CommandText = "select pic from test where id=" + textBox1.Text;
byte[] Img = (byte[])cmd.ExecuteScalar();
string str = Convert.ToString(DateTime.Now.ToFileTime());
FileStream fs = new FileStream(str, FileMode.CreateNew, FileAccess.Write);
fs.Write(Img, 0, Img.Length);
fs.Flush();
fs.Close();
pictureBox2.Image = Image.FromFile(str);
}
catch
{
MessageBox.Show("عکس مورد نظر پیدا نشد. لطفا آی دی وارد شده را با دقت وارد کنید", "بروز خطا");
}
finally
{
con.Close();
}
}