1 ضمیمه
ذخیره تصویر در بانک (در خود بانک ذخیره می شود) همراه با نمونه کد
خوب تو آموزش قبلی نحوه ذخیره کردن عکس از طریق آدرس رو گفتم در لینک زیر
https://barnamenevis.org/showthread.p...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_connectio n=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;tru sted_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();
}
}
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
سلام
ممنون بابت آموزش ...
اگه بخوام تو اکسس این کارو کنیم چی ؟
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
چطوری میشه همزمان چند عکس رو ذخیره کرد؟
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
سلام
ریختن هر نوع فایلی داخل بانک اطلاعات و فراخوانی آن در برنامه خودش
البته این با اکسس هستش ولی فقط کافیه Oledb و تبدیل به sql کنید و using رو هم عوض کنید.
1 ضمیمه
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود) همراه با نمونه کد
چرا وقتی دکمه ذخیره رو می زنم این ارور رو میده
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
قبل از con.open دستور ms.close() بزنید
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
نقل قول:
نوشته شده توسط
soonami
قبل از con.open دستور ms.close() بزنید
جواب نداد....
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
نقل قول:
نوشته شده توسط
pesare
سرویس sql شما run نیست
چه جوری run میشه
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
داخل Runبنویسید services.msc بعد اینتر کنید , توی صفحه ای که باز میشه سرویس sql رو پیدا کنید و استارت کنید
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
نقل قول:
نوشته شده توسط
pesare
داخل Runبنویسید services.msc بعد اینتر کنید , توی صفحه ای که باز میشه سرویس sql رو پیدا کنید و استارت کنید
تشکر که وقت گذاشتی ولی متاسفانه کار نکرد
من از اس کیو ال اکسپرس خود ویژوال 2010 استفاده می کنم
ابتدا بانک و جدول رو ایجاد می کنم بعد با استفاده از دیتا سورس کانکشن رو می سازم همان طور که در تصویر میبینید در ارور لیست خطایی وجود ندارد و برنامه ران می شود اما نمی دانم چرا عکس سیو نمی شود حتی فایل ضمینه شده هم تو سیستم من اینطوری بود
در صورتی که خودم بانک و جدول ایجاد می کنم چنین مشکلی ندارم
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
سلام سپاس .
اگر توجه کرده باشید در کنار exe برنامه یک سری فایل بعد ذخیره و نمایش عکس ها ایجاد میشود چه طوری انها رو پاک کنیم؟
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
سلام امیر جان
میشه چند تا عکس رو با ی آی دی هم ذخیره کرد؟
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
اگه تعداد عکسهات مشخصه میتونی به تعداد اونها در یک رکورد فیلد بسازی و با یک ای دی اضافه کنی , اما بهتره برای عکس یه تیبل جدا ایجاد کنی و عکسا رو توی اون ذخیره کنی
1 ضمیمه
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
سلام دوستان یه سوال اساسی که دیگه توش موندم اغا عکس برای من ذخیره نمی شه به کدام توجه کنید
ضمیمه 144714
می خوام همراه با اطلاعات مشتری عکسش رو هم بگیرم تو دیتابیس ذخیره کنم ( حجمش کمه برای همین میخوام تو دیتابیس ذخیره بشه ) نه آدرس دهی کنم
هر کاری می کنم نمی شه یه نگاهی بکنید لطفا کجا اشتباه کردم(( راستی سال 1396 هم مبارک سال خوشی براتون آرزو می کنم))
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
نقل قول:
نوشته شده توسط
esmael_g
سلام دوستان یه سوال اساسی که دیگه توش موندم اغا عکس برای من ذخیره نمی شه به کدام توجه کنید
ضمیمه 144714
می خوام همراه با اطلاعات مشتری عکسش رو هم بگیرم تو دیتابیس ذخیره کنم ( حجمش کمه برای همین میخوام تو دیتابیس ذخیره بشه ) نه آدرس دهی کنم
هر کاری می کنم نمی شه یه نگاهی بکنید لطفا کجا اشتباه کردم(( راستی سال 1396 هم مبارک سال خوشی براتون آرزو می کنم))
به جای عکس، کد بزارید.
خطا میده؟ متن خطا؟
همه مقادیر رو به صورت پارامتر ارسال کنید. هم از نظر امنیت و هم از نظر خوانایی کد و جلوگیری از خطاهای احتمالی.
1 ضمیمه
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
خوب اینم کد
MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
byte[] arraypic = ms.GetBuffer();
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=.;Initial Catalog=Taxi;Integrated Security=True";
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "insert into Driver(Codemili,name,fname,roz,mah,sal,shenasnameh ,car,mayenefani,fuel,fader,img) values('" + textBox4.Text + "','" + textBox2.Text + "','" + textBox3.Text +"','" + comboBox1.Text + "','" + comboBox2.Text + "','" + comboBox3.Text + "','" + textBox1.Text + "','" + textBox5.Text + "','" + textBox6.Text + "','" + comboBox4.Text + "','" + textBox7.Text + "@img" + "')";
com.Parameters.AddWithValue("@img", arraypic);
con.Open();
com.ExecuteNonQuery();
con.Close();
view();
دوم اینم ارور
ضمیمه 144718
این که شکل درسته نمی دونم اما هرجور حساب می کنم باید درست باشه و دوم هم تو انجمن و... تنها روش ذخیره عکس ( تنها ) رو نشون دادن من انجام میدم (مثل کد بالا) اما جواب نمی ده همراه با داده های دیگم ذخیره نمی شه و ارور میده
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
قبل از @img ویرگول , نذاشتید. بعدش هم نیازی به تک کوتیشن ندارد.
لینک زیر رو هم ببینید.
https://barnamenevis.org/showthread.p...8%A7-parameter
1 ضمیمه
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
حالا یه مشکل دیگه ذخیره شد اما دیتاگرید اینجوری نشونش میده مثل شکل پایین چیکار کنم دیتاگرید تصویر فرد رو نشون بده
ضمیمه 144719
نگید نگشتم گشتم تو نت و هم تو تنظیمات دیتاگرید حتی بعضی ها هم گفتن باید به صورت اتومات نشون بده؟
نقل قول: ذخیره تصویر در بانک (در خود بانک ذخیره می شود)
هی یادش بخیر اون زمان راستش من زیاد بلد نبودم برای ذخیره عکس و باز یابی در کل از روشی که من در بالا داده ذخیره کردم استفاده نکنید درست نیست از روش اسمش چی بود ؟؟/ فک کنم رشته ای بود استفاده کنید همون روشی که امیر جان استفاده کردن و کد های بالا رو برای ذخیره عکس استفاده کردن در کل عالی بود