ذخيره و بازيابي عكس در بانك به روش باينري
سلام دوستان
من يه سري اطلاعات پرسنلي دارم كه عكس پرسنلي هم شاملش ميشه. بعد از كلي جستجو در تاپيك هاي مختلف متوجه شدم بهترين روش ذخيره عكس به صورت باينري هست. يه سري كدهايي هم براي ذخيره و بازيابي پيدا كردم. اما براي من خطا ميده . حالا مي خواستم مراحل كار خودم رو بنويسم اگه كسي مي تونه بگه اشكال كارم كجاست . ممنون
مراحل كار من:
1- ابتدا توي بانكم توي جدول يه فيلد از نوع باينري ايجاد كردم
2- عكس رو به صورت زير در بانك ريختم
FileByte از نوع byte هستش
FileByte = IO.File.ReadAllBytes(OpenFileDialog1.FileName)
3-حالا كه مي خوام عكس رو از بانك بازخواني كنم و در picturebox بريزم اين رو نوشتم
Dim File AsByte()
Dim MS AsNew MemoryStream()
File = MInfoBus.Open_MainInfo(Id).Rows(0).Item("ImageByte") (بازخواني فيلد از بانك و ريختن آن در file)
PictureBox1.Image = Image.FromStream(MS)
**خط آخر خطا ميده ميگه Parameter is not valid.
خواهش مي كنم كمك كنيد .
نقل قول: ذخيره و بازيابي عكس در بانك به روش باينري
دوست عزیز در باره این موضوع تویه سایت موضوع زیاد هست یا سرس برنامتونو قرار بدین برای برسی یا این که به این شکل کار کنی
برای مثلا
نقل قول:
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 که روش های دیگه هم فرق خاصی نداره فقط کانکشن عوض میشه یه سری تغییرات جزئی
نقل قول: ذخيره و بازيابي عكس در بانك به روش باينري
ممنون از راهنمايي تون
اما با اين حال من نتونستم از كدهاي شما استفاده كنم. سورس برنامه را خواستم بفرستم ظاهراً حجمش زياد است:ناراحت::ناراحت:
نقل قول: ذخيره و بازيابي عكس در بانك به روش باينري
نقل قول: ذخيره و بازيابي عكس در بانك به روش باينري
این کد ها مربوط میشه به پایگاه داده من شما به یه ذره تغییر به پایگاه داده خودتون میتونید استفاده کنید مغیر ها تویه این سرس فقط مسیر پایگاه داده و فیلد ها هستن باقیشون ثابته یه ذره وقت بزارین مشلی نیست
این مسیر پایگاه داده هست StrSqlConn
Public StrSqlConn As String = "Data Source=meysamg\sqlexpress;Initial Catalog=DataHzor2;Integrated Security=True"
اگه تا حالا sql کار نکردید یه خرده سخته ولی تو میتوین !
نقل قول: ذخيره و بازيابي عكس در بانك به روش باينري
ميثم عزيز من متوجه كد شما شدم .ازش توي برنامه ام هم استفاده كردم اما بازم همون خطاي قبلي رو داد.كد آقا ميلاد هم شبيه كد شماست. من فكر مي كنم بايد يه چيزي به برنامه ام اضاف كنم كه درست بشه
از لحاظ كد نويسي فكر كنم كاملا درست باشه Reference خاصي لازم نيست به فرمم اضاف كنم يا يه همچين چيزي؟؟؟؟؟؟
ممنون:متفکر::متفکر:
1 ضمیمه
نقل قول: ذخيره و بازيابي عكس در بانك به روش باينري
نه عزیز چیزی نمیخواد منم روزه اول مثله شما بودم اشکالی نداره
این پایین یه سرس براتون گزاشتم انشالا که مشکلتون حل بشه البته سرسش از من نیست از بچه های همین سایته چون سرچ سایت کار نمیکنه نمیدونم اسمشو پیدا کنم از کامپیوتر خودم الپلود کردم امید وارم این دیگه کار کنه