PDA

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



vahidth
چهارشنبه 15 آذر 1391, 16:20 عصر
سلام
چطوری میتونم فیلدها و عکس رو در گرید ویو و در دیتابیس ذخیره کنم
من این فیلدها رو دارم (id) (name) (family) (pic) یک openFileDialog در فرم گذاشتم و دو تا دکمه یکی برای اضافه کردن عکس و یکی برای ذخیره و یک دیتا گرید ویو
کد مربوط به اضافه کردن عکس رو نوشتم ولی کد ذخیره رو نمیدونم

string filename;
openFileDialog1.Filter = "Images(*.jpg)|*.jpg|All files(*.*)|*.*)";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Title = "browse";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
filename = openFileDialog1.FileName;
pictureBox1.ImageLocation = filename;
}

vahidth
چهارشنبه 15 آذر 1391, 17:42 عصر
کسی نیست از عزیزان منو کمک کنه

Farshid007
چهارشنبه 15 آذر 1391, 18:06 عصر
لطفا سرچ کنید یافت می شود.

vahidth
چهارشنبه 15 آذر 1391, 18:13 عصر
جستجو کردم داداش ولی کدها یا برای vb.net بود یا برای asp.net چند تا کد هم بود که ازش سردر نیاوردم

lahiji
چهارشنبه 15 آذر 1391, 19:44 عصر
سلام

کد زیر برای ذخیره در دیتا بیس


using System.IO;

private void button1_Click(object sender, EventArgs e)
{

try
{
opn.Filter = "Picture Files(*.*)|*.jpg;*.gif";

if (opn.ShowDialog() == DialogResult.OK)
{
if (!string.IsNullOrEmpty(opn.FileName))
{
pictureBox1.Image = Image.FromFile(opn.FileName);
textBox15.Text = opn.FileName;
this.ImgSave();
}
}

}

catch (Exception)
{

}

}



private void ImgSave()
{
try
{
SqlConnection strcon = new SqlConnection("Data Source=sml;Initial Catalog=dbper;Integrated Security=True");

// string strcon = ConfigurationManager.ConnectionStrings["strconnection"].ConnectionString;
SqlConnection conn = new SqlConnection(strcon);

DialogResult result;

result = MessageBox.Show(" آيا عکس انتخاب شده را ثبت می کنید؟ ", "ذخیره عکس", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (result == DialogResult.Yes)
{
FileStream fs = new FileStream(opn.FileName, FileMode.Open, FileAccess.Read);
byte[] ar = new byte[fs.Length];
fs.Read(ar, 0, (int)fs.Length);
fs.Close();

string comstr_update = @"UPDATE Personal SET Img=@Img Where IdCard = '" + textBox1.Text + "'";

conn.Open();

SqlCommand cmd1 = new SqlCommand(comstr_update, conn);


cmd1.Parameters.AddWithValue("@Img", ar);

cmd1.ExecuteNonQuery();


conn.Close();



}

}
catch (Exception)
{
MessageBox.Show(" هیچ عکسی انتخاب نشده ", "پیغام", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

}

vahidth
چهارشنبه 15 آذر 1391, 19:58 عصر
عزیزان من پروژه رو آپلود کردم ببینین مشکل از کجاست
http://uploadtak.com/images/k1876_Project_image.rar

vahidth
چهارشنبه 15 آذر 1391, 20:19 عصر
try
{
SqlConnection strcon = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirec tory|\db2.mdf;Integrated Security=True");

// string strcon = ConfigurationManager.ConnectionStrings["strconnection"].ConnectionString;
SqlConnection conn = new SqlConnection(strcon);

DialogResult result;

result = MessageBox.Show(" آيا عکس انتخاب شده را ثبت می کنید؟ ", "ذخیره عکس", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (result == DialogResult.Yes)
{
FileStream fs = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
byte[] ar = new byte[fs.Length];
fs.Read(ar, 0, (int)fs.Length);
fs.Close();

string comstr_update = @"UPDATE bank SET pic=@Img Where IdCard = '" + textBox1.Text + "'";

conn.Open();

SqlCommand cmd1 = new SqlCommand(comstr_update, conn);


cmd1.Parameters.AddWithValue("@pic", ar);

cmd1.ExecuteNonQuery();


conn.Close();



}

}
catch (Exception)
{
MessageBox.Show(" هیچ عکسی انتخاب نشده ", "پیغام", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}



داداش من کد شما رو به این صورت تغییر دادم ولی بازم ارور میده
96105

lahiji
چهارشنبه 15 آذر 1391, 20:47 عصر
try
{
SqlConnection strcon = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirec tory|\db2.mdf;Integrated Security=True");

// string strcon = ConfigurationManager.ConnectionStrings["strconnection"].ConnectionString;
SqlConnection conn = new SqlConnection(strcon);

DialogResult result;

result = MessageBox.Show(" آيا عکس انتخاب شده را ثبت می کنید؟ ", "ذخیره عکس", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (result == DialogResult.Yes)
{
FileStream fs = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
byte[] ar = new byte[fs.Length];
fs.Read(ar, 0, (int)fs.Length);
fs.Close();

string comstr_update = @"UPDATE bank SET pic=@Img Where IdCard = '" + textBox1.Text + "'";

conn.Open();

SqlCommand cmd1 = new SqlCommand(comstr_update, conn);


cmd1.Parameters.AddWithValue("@pic", ar);

cmd1.ExecuteNonQuery();


conn.Close();



}

}
catch (Exception)
{
MessageBox.Show(" هیچ عکسی انتخاب نشده ", "پیغام", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}



داداش من کد شما رو به این صورت تغییر دادم ولی بازم ارور میده
96105


چند تا نکته
اول
من کدی که به شما دادم . چون من اول رکورد رو ثبت شده در نظر گرفتم و فقط عکس رو بهش اضافه می کنم بخاطر همین هم هست که از update استفاده کردم دقت کن به کد
دوم
فیلد عکس داخل دیتا بیس باید از نوع Bit یا Image باشد

vahidth
چهارشنبه 15 آذر 1391, 20:55 عصر
داداش کد سیو عکس در دیتابیس و دیتاگرید رو میشه در یک پروژه به من بدی

داداش فیلد عکس من اسمش pic و از نوع( (varbinary(max

lahiji
چهارشنبه 15 آذر 1391, 21:05 عصر
بفرما اینم برنامت

فقط کانکشنت رو تغیر بده چون من 2012 ندارم من با2010 درستش کردم

موفق باشی
سعی کن برنامه ها تو مخصوصا دیتا بیس تو توی vs2010 درست کن چون همه کس 2012 ندارن

به هر حال موفق باشی

http://www.uploadtak.com/images/j849_Project_image.rar

vahidth
چهارشنبه 15 آذر 1391, 21:16 عصر
داداش دمت گرم خیلی گلی به خدا از صبح تا الان دنبال این کد بودم اجرت با خدا
فقط یه سوال دیگه چطوری میتونم وقتی روی دیتاگرید کلیک کردم اطلاعات و عکس هر رکورد در تکست باکس ها بیاد و اطلاعات رو ویرایش کنم

lahiji
پنج شنبه 16 آذر 1391, 00:03 صبح
داداش دمت گرم خیلی گلی به خدا از صبح تا الان دنبال این کد بودم اجرت با خدا
فقط یه سوال دیگه چطوری میتونم وقتی روی دیتاگرید کلیک کردم اطلاعات و عکس هر رکورد در تکست باکس ها بیاد و اطلاعات رو ویرایش کنم

بفرما
http://www.uploadtak.com/images/c8483_Project_image.rar

mhq1368
پنج شنبه 16 آذر 1391, 09:22 صبح
من یه پروژه براتون می زارم شاید بدردتون خورد.قبلا این برای یاد گیری خودم درست کرده بودم شاید به دردتون بخوره


96138


فقط کانکشن استرینگش رو براساس پروژتون تغییر بدین