PDA

View Full Version : مبتدی: درج تصویر در دیتابیس



raziyehbazargan
دوشنبه 06 شهریور 1391, 12:43 عصر
سلام دوستان چطور میتونم در برنامه ام فایلی رو از کاربر بگیرم و تو دیتابیسم ذخیره کنم؟؟

91918

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

raziyehbazargan
دوشنبه 06 شهریور 1391, 14:21 عصر
دوستانی که مثل من تو این قمست مشکل دارن
http://dotnetaid.com/2011/08/03/inserting-image-into-database-in-c-net-window-application/
این سایت خیلی قشنگ توضیخ داده ....

الان فقط مشکلم نمایش عکس در دیتاگرید ویو هستتت

veniz2008
دوشنبه 06 شهریور 1391, 15:07 عصر
سلام.من برای کار با عکس ها آدرس اونا رو درون بانک ذخیره میکنم. در کد زیر فیلد pic از نوع nvarchar هست و آدرس عکس رو برای هر رکورد ذخیره میکنه. یه ستون از نوع DataGridViewImageColumn به گرید خودتون اضافه کنید.ابتدا همه فیلدهای گرید رو به جز فیلد pic رو درون گرید نمایش بدید( یعنی همون کار همیشگی که انجام میدید)، در ادامه کدهای قبلیتون کد زیر رو برای خواندن عکس ها و نمایش اون درون دیتاگرید استفاده کنید( منظور از dt همون دیتاتیبل هست)
توجه : ستون چهارم گریدویو من ( که با اندیس 3 مشخص شده ) همان فیلد مربوط به عکس هست. برای اینکه بدونم هر عکس مربوط به کدوم رکورد هست از فیلد id که کلید جدولم هست استفاده کردم.

for (int i = 0; i < dt.Rows.Count; i++)
{
SqlCommand cmd = new SqlCommand("select pic from std where id =" +Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value.ToString().Trim()), con);
string path = (string)cmd.ExecuteScalar();
dataGridView1.Rows[i].Cells[3].Value = Image.FromFile(path);
}

raziyehbazargan
دوشنبه 06 شهریور 1391, 15:23 عصر
سلام.من برای کار با عکس ها آدرس اونا رو درون بانک ذخیره میکنم. در کد زیر فیلد pic از نوع nvarchar هست و آدرس عکس رو برای هر رکورد ذخیره میکنه. یه ستون از نوع DataGridViewImageColumn به گرید خودتون اضافه کنید.ابتدا همه فیلدهای گرید رو به جز فیلد pic رو درون گرید نمایش بدید( یعنی همون کار همیشگی که انجام میدید)، در ادامه کدهای قبلیتون کد زیر رو برای خواندن عکس ها و نمایش اون درون دیتاگرید استفاده کنید( منظور از dt همون دیتاتیبل هست)
توجه : ستون چهارم گریدویو من ( که با اندیس 3 مشخص شده ) همان فیلد مربوط به عکس هست. برای اینکه بدونم هر عکس مربوط به کدوم رکورد هست از فیلد id که کلید جدولم هست استفاده کردم.


for (int i = 0; i < dt.Rows.Count; i++)
{
SqlCommand cmd = new SqlCommand("select pic from std where id =" +Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value.ToString().Trim()), con);
string path =(string)cmd.ExecuteScalar();
dataGridView1.Rows[i].Cells[3].Value = Image.FromFile(path);

خیلی ممنون دوست من
فقط یه سوال من عکس رو تو خود جدول ذخیره میکنم و فیلد من از نوع varbinary max هست چطور نوع بایت رو به این نوع تبدیل کنم برای ذخیره عکس؟

fahimi
دوشنبه 06 شهریور 1391, 16:37 عصر
اگر از Sqlserver2008 استفاده میکنی به نظر من استفاده FileStream فوق العاده است و جهت شروع مقاله وحید نصیری خیلی عالی است