PDA

View Full Version : ذخيره و بازيابي عكس در بانك به روش باينري



sharifat
پنج شنبه 25 آذر 1389, 11:08 صبح
سلام دوستان
من يه سري اطلاعات پرسنلي دارم كه عكس پرسنلي هم شاملش ميشه. بعد از كلي جستجو در تاپيك هاي مختلف متوجه شدم بهترين روش ذخيره عكس به صورت باينري هست. يه سري كدهايي هم براي ذخيره و بازيابي پيدا كردم. اما براي من خطا ميده . حالا مي خواستم مراحل كار خودم رو بنويسم اگه كسي مي تونه بگه اشكال كارم كجاست . ممنون
مراحل كار من:
1- ابتدا توي بانكم توي جدول يه فيلد از نوع باينري ايجاد كردم
2- عكس رو به صورت زير در بانك ريختم
FileByte از نوع byte هستش
FileByte = IO.File.ReadAllBytes(OpenFileDialog1.FileName)

3-حالا كه مي خوام عكس رو از بانك بازخواني كنم و در picturebox بريزم اين رو نوشتم
Dim File As Byte()
Dim MS As New MemoryStream()
File = MInfoBus.Open_MainInfo(Id).Rows(0).Item("ImageByte") (بازخواني فيلد از بانك و ريختن آن در file)
PictureBox1.Image = Image.FromStream(MS)

**خط آخر خطا ميده ميگه Parameter is not valid.

خواهش مي كنم كمك كنيد .

meysam_meysam74
پنج شنبه 25 آذر 1389, 15:18 عصر
دوست عزیز در باره این موضوع تویه سایت موضوع زیاد هست یا سرس برنامتونو قرار بدین برای برسی یا این که به این شکل کار کنی
برای مثلا

Dim SqlConn As New SqlClient.SqlConnection(StrSqlConn)
SqlConn.Open()
Dim SqlCommand2 As New SqlClient.SqlCommand("delete from sherkatDetail", SqlConn)
SqlCommand2.ExecuteNonQuery()
SqlConn.Close()
SqlConn.Open()
Dim SqlCommand As New SqlClient.SqlCommand("insert into sherkatDetail (NAmeSh,Telsh, mobsh,adressSh,picsh) values('" & TextBox6.Text & "','" & TextBox3.Text & "','" & _
TextBox5.Text & "','" & TextBox4.Text & "', @pictureX)", SqlConn)
Dim ArrPic As Byte()
Dim ms As New IO.MemoryStream
Dim bmp As New Bitmap(PictureBox1.Image)
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
ArrPic = ms.GetBuffer
ms.Close()
SqlCommand.Parameters.Add(New SqlClient.SqlParameter("@pictureX", SqlDbType.Image)).Value = ArrPic
SqlCommand.ExecuteNonQuery()
SqlConn.Close()
برای ذخیره البته فیلد های دیگه هم هست من پروژه خودم باز هست پایین مستقیم کپی کردم
Dim SqlConne2 As New SqlClient.SqlConnection(StrSqlConn)
SqlConne2.Open()
Dim sqlCommand As New SqlClient.SqlCommand("select * from sherkatDetail", SqlConne2)
Dim Dreder As SqlClient.SqlDataReader = sqlCommand.ExecuteReader()
If Dreder.Read() = True Then
TextBox6.Text = Dreder("namesh").ToString
TextBox5.Text = Dreder("mobsh").ToString
TextBox3.Text = Dreder("telsh").ToString
TextBox4.Text = Dreder("adresssh").ToString
Dim Arrpic As Byte() = Dreder("picsh")
Dim ms As New IO.MemoryStream(Arrpic)
PictureBox1.Image = Image.FromStream(ms)
End If

SqlConne2.Close()
اینم برای خاندن البته به روش sql که روش های دیگه هم فرق خاصی نداره فقط کانکشن عوض میشه یه سری تغییرات جزئی

sharifat
پنج شنبه 25 آذر 1389, 16:34 عصر
ممنون از راهنمايي تون
اما با اين حال من نتونستم از كدهاي شما استفاده كنم. سورس برنامه را خواستم بفرستم ظاهراً حجمش زياد است:ناراحت::ناراحت:

milad.biroonvand
پنج شنبه 25 آذر 1389, 22:51 عصر
سلام


دوست عزیزم ، به این تاپیک برو


http://barnamenevis.org/showthread.php?264914-%D9%86%D8%AD%D9%88%D9%87-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%B9%DA%A9%D8%B3-%D8%AF%D8%B1-VB.NET

meysam_meysam74
پنج شنبه 25 آذر 1389, 23:08 عصر
این کد ها مربوط میشه به پایگاه داده من شما به یه ذره تغییر به پایگاه داده خودتون میتونید استفاده کنید مغیر ها تویه این سرس فقط مسیر پایگاه داده و فیلد ها هستن باقیشون ثابته یه ذره وقت بزارین مشلی نیست
این مسیر پایگاه داده هست StrSqlConn
Public StrSqlConn As String = "Data Source=meysamg\sqlexpress;Initial Catalog=DataHzor2;Integrated Security=True"
اگه تا حالا sql کار نکردید یه خرده سخته ولی تو میتوین !

sharifat
جمعه 26 آذر 1389, 16:16 عصر
ميثم عزيز من متوجه كد شما شدم .ازش توي برنامه ام هم استفاده كردم اما بازم همون خطاي قبلي رو داد.كد آقا ميلاد هم شبيه كد شماست. من فكر مي كنم بايد يه چيزي به برنامه ام اضاف كنم كه درست بشه
از لحاظ كد نويسي فكر كنم كاملا درست باشه Reference خاصي لازم نيست به فرمم اضاف كنم يا يه همچين چيزي؟؟؟؟؟؟
ممنون:متفکر::متفکر:

meysam_meysam74
جمعه 26 آذر 1389, 20:56 عصر
نه عزیز چیزی نمیخواد منم روزه اول مثله شما بودم اشکالی نداره
این پایین یه سرس براتون گزاشتم انشالا که مشکلتون حل بشه البته سرسش از من نیست از بچه های همین سایته چون سرچ سایت کار نمیکنه نمیدونم اسمشو پیدا کنم از کامپیوتر خودم الپلود کردم امید وارم این دیگه کار کنه