PDA

View Full Version : ذخیره عکس در sql



saeedvbm
یک شنبه 22 تیر 1393, 15:44 عصر
با سلام خدمت اساتید گرامی

یه بانک دارم ، که یه رکوردشرو هم ازنوع image گرفتم

می خواستم که عکس رو ( نه آدرس) تو پایگاه ذخیره کنم

ممنون میشم اگه کمکم کنید و کدشو بنویسید .
یک pictuerbox داریم و یه دونه open file dialog . :خجالت::خجالت:

فوری نیازدارم . مرسی

khokhan
یک شنبه 22 تیر 1393, 17:00 عصر
با سلام خدمت اساتید گرامی

یه بانک دارم ، که یه رکوردشرو هم ازنوع image گرفتم

می خواستم که عکس رو ( نه آدرس) تو پایگاه ذخیره کنم

ممنون میشم اگه کمکم کنید و کدشو بنویسید .
یک pictuerbox داریم و یه دونه open file dialog . :خجالت::خجالت:

فوری نیازدارم . مرسی
سلام بهتر بود یه جستجوی کوچک می کردین :لبخند:


OpenFileDialog fop = new OpenFileDialog(); fop.InitialDirectory = @"C:\"; fop.Filter = "[JPG,JPEG]|*.jpg";
if (fop.ShowDialog() == DialogResult.OK)
{
FileStream FS = new FileStream(@fop.FileName, FileMode.Open, FileAccess.Read);
byte[] img = new byte[FS.Length];
FS.Read(img, 0, Convert.ToInt32(FS.Length));
SqlConnection con = new SqlConnection();
con.Open();
SqlCommand cmd = new SqlCommand("insert into Imageform(Picture) values(@Picture)", con);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("@Picture", SqlDbType.Image).Value = img;
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("انجام شد ");

saeedvbm
یک شنبه 22 تیر 1393, 19:03 عصر
دوست عزیز این con چیه ؟

khokhan
یک شنبه 22 تیر 1393, 19:05 عصر
دوست عزیز این con چیه ؟

SqlConnection con = new SqlConnection();

saeedvbm
یک شنبه 22 تیر 1393, 19:12 عصر
این کدمه
SqlConnection sc = new SqlConnection("Data Source=.\\sqlexpress ;Initial Catalog=saeed;Integrated Security=True");
SqlConnection con = new SqlConnection("Data Source=.\\sqlexpress ;Initial Catalog=saeed;Integrated Security=True");

private void LoadImageBtn_Click(object sender, EventArgs e)
{

openFileDialog1.ShowDialog();
if (openFileDialog1.FileName != "")
{

Image newImage = Image.FromFile(openFileDialog1.FileName);

myPictureBox.Image = newImage;
FileStream FS = new FileStream(@openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
byte[] img = new byte[FS.Length];
FS.Read(img, 0, Convert.ToInt32(FS.Length));


if (con.State == ConnectionState.Closed)
con.Open();
SqlCommand cmd = new SqlCommand("SaveImage", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@img", SqlDbType.Image).Value = img;
cmd.ExecuteNonQuery();

منتها از این خط ارور میگیره

cmd.ExecuteNonQuery();

Pedram_Parsian
یک شنبه 22 تیر 1393, 20:07 عصر
این کدمه
SqlConnection sc = new SqlConnection("Data Source=.\\sqlexpress ;Initial Catalog=saeed;Integrated Security=True");
SqlConnection con = new SqlConnection("Data Source=.\\sqlexpress ;Initial Catalog=saeed;Integrated Security=True");

private void LoadImageBtn_Click(object sender, EventArgs e)
{

openFileDialog1.ShowDialog();
if (openFileDialog1.FileName != "")
{

Image newImage = Image.FromFile(openFileDialog1.FileName);

myPictureBox.Image = newImage;
FileStream FS = new FileStream(@openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
byte[] img = new byte[FS.Length];
FS.Read(img, 0, Convert.ToInt32(FS.Length));


if (con.State == ConnectionState.Closed)
con.Open();
SqlCommand cmd = new SqlCommand("SaveImage", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@img", SqlDbType.Image).Value = img;
cmd.ExecuteNonQuery();

منتها از این خط ارور میگیره

cmd.ExecuteNonQuery();



خوب اگه کد شما مشکل داشته باشه حتما از این خط هست ولی متن خطا چیه ؟؟؟ !!

Share & Learn
یک شنبه 22 تیر 1393, 23:20 عصر
سلام
یه جستجو تو همین سایت می کردید پیدا می شد
من یه برنامه نوشتم که هم تصویر هم آدرس اون رو ذخیره می کنه
خدمت شما: لینک (http://barnamenevis.org/showthread.php?64210-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%AF%D8%B1-%D8%B3%D9%8A-%D8%B4%D8%A7%D8%B1%D9%BE&p=2043829&viewfull=1#post2043829)

learningtv.i
یک شنبه 22 تیر 1393, 23:40 عصر
دوست عزیز اگه با تکنولوژی LINQ می خواهی برنامه نویسی می توانی با استفاده از این آموزش تصویری (http://learningtv.ir/%d8%b0%d8%ae%db%8c%d8%b1%d9%87-%d9%88-%d8%a8%d8%a7%d8%b2%db%8c%d8%a7%d8%a8%db%8c-%d8%aa%d8%b5%d8%a7%d9%88%db%8c%d8%b1-%d8%af%d8%b1-linq-to-sql/)هم عکس توی PictureBox رو در SQL ذخیره کنی و هم عکس رو از بانک بخونی و توی PictureBox نمایش بدی.

saeedvbm
دوشنبه 23 تیر 1393, 09:54 صبح
این کد


SqlConnection con = new SqlConnection("Data Source=.\\sqlexpress ;Initial Catalog=saeed;Integrated Security=True");

private void LoadImageBtn_Click(object sender, EventArgs e)
{

openFileDialog1.ShowDialog();
if (openFileDialog1.FileName != "")
{

Image newImage = Image.FromFile(openFileDialog1.FileName);

myPictureBox.Image = newImage;
FileStream FS = new FileStream(@openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
byte[] img = new byte[FS.Length];
FS.Read(img, 0, Convert.ToInt32(FS.Length));


if (con.State == ConnectionState.Closed)
con.Open();
SqlCommand cmd = new SqlCommand("insert into tv values('" + img.Length+ "')", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@img", SqlDbType.Image).Value = img;
cmd.ExecuteNonQuery();
con.Close();

من تو این کد ابهام دارم


SqlCommand cmd = new SqlCommand("insert into tv values('" + img.Length+ "')", con);

و

خطاشهم اینه : Could not find stored procedure 'insert into tv values('85638')'.

s.karim
دوشنبه 23 تیر 1393, 11:55 صبح
شما از دستور sql به طور مستقیم استفاده کردی و insert کردی و در مقابل نوع Command رو StoreProcedure تعریف کردی که این تناقض داره
باید یک پروسیچر برای دستور Insert خودت بنویسی و بعد نام اون رو به همراه پارامتراش اینجا بیاری.

saeedvbm
دوشنبه 23 تیر 1393, 12:07 عصر
دوست عزیز میشه کد درستو بذاری ، با تشکر

s.karim
سه شنبه 24 تیر 1393, 08:43 صبح
اول یه پروسیجر درون sql میسازی مثل پروسیجر زیر:



CREATE Procedure tv_Insert
@img image = NULL


As
Begin
Insert Into tv
(img)
Values
(@img)

End



بعد کد خودت رو توی خط 20 ام اینطوری تصحیح می کنی:


SqlCommand cmd = new SqlCommand("tv_Insert", con);

danialafshari
سه شنبه 24 تیر 1393, 08:47 صبح
بسیار تکراری...