PDA

View Full Version : سوال: درج عكس در بانك



msh_gold
سه شنبه 22 مرداد 1387, 05:47 صبح
با سلام من مي خوام توي بانكم عكس درج كنم كدشم پيدا كردم ولي سر در نميارم از متغيير هايي كه استفاده شده كسي هست كه يه توضيح بده اين متغيير ها چه كاري انجام مي دن

متغيير ms و نوعش و arrimage() .با تشكر

If txtpic_name.Text = "" Then

MsgBox("لطفاً نامی برای عکس وارد کنید")
Exit Sub

End If

Dim ms As New MemoryStream
Try

picbox.Image.Save(ms, picbox.Image.RawFormat)
Catch exc As Exception
MsgBox("لطفاً ابتدا عکسی انتخاب کنید")
Exit Sub

End Try

Dim arrimage() As Byte = ms.GetBuffer
Try

pic_con.Open()
Catch ex As Exception
MsgBox("به علت عدم اتصال با سرور عکس ذخیره نشد")
End

End Try

Dim strsql As String = "insert into Table_pic(pic_id,pic_name,pic_image)values(@pic_id ,@pic_name,@pic_image)"

Dim cmd As New SqlCommand(strsql, pic_con)
With cmd
.Parameters.Add(New SqlParameter("@pic_id", SqlDbType.Int)).Value = txtpic_cod.Text
.Parameters.Add(New SqlParameter("@pic_name", SqlDbType.NVarChar, 30)).Value = txtpic_name.Text
.Parameters.Add(New SqlParameter("@pic_image", SqlDbType.Image)).Value = arrimage
End With

cmd.ExecuteNonQuery()
pic_con.Close()

shamsoft
سه شنبه 22 مرداد 1387, 13:12 عصر
ms که یه متغییر از نوع MemoryStream هست. اسمش هم که روی خودشه! در واقع یه فضا در حافظه برای ذخیره سازی عکس در اونجا در نظر می گیره.
arrimage هم که یه آرایه از نوع Byte هست و کارش هم اینه که هر بایت عکس (که روی حافظه هست) رو توی یه خانه از آرایه قرار میده

fat_roze2000
سه شنبه 22 مرداد 1387, 16:32 عصر
Private Function GetImage() As Object
Try

If IsNothing(Me.pcbMessageGather.Image) Then Return Nothing

Dim ms As New System.IO.MemoryStream
Dim arrImage() As Byte

Me.pcbMessageGather.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
ms.Close()
arrImage = ms.GetBuffer
Return arrImage

Catch ex As Exception
clsMain.frmErrorMessage.ShowMessage(ex, Me)
Return Nothing
End Try

End Function
'************************************************* ************************************************** ***************
' ونمايش بر روي صفحهTable خواندن تصوير از
'************************************************* ************************************************** ***************
Private Sub SetPicture()
Try

If Me.objMessageGather.dtMessageGather.Rows.Count > 0 Then

If Not clsMain.objStringUtility.IsNullObject(Me.objMessag eGather.bImage) Then
Dim arrPicture() As Byte = Me.objMessageGather.bImage

'پر کردن متغیر کمکی عکس
If arrPicture.Length = 0 Then Exit Sub

Dim ms As New System.IO.MemoryStream(arrPicture)
Me.pcbMessageGather.Image = New Bitmap(Image.FromStream(ms))
End If

End If

Catch ex As Exception
clsMain.frmErrorMessage.ShowMessage(ex, Me)
End Try

End Sub

msh_gold
چهارشنبه 23 مرداد 1387, 05:38 صبح
سلام ممنونم از راهنمايي تون .تابع getbuffer تعداد بايتهاي هر متغييري رو بر مي گردونه.

parsavb
پنج شنبه 24 مرداد 1387, 10:57 صبح
فکر کنم این (http://barnamenevis.org/forum/attachment.php?attachmentid=18564&d=1212407960) برنامه به دردت بخوره توضیح لازم نداره سورسش رو نگاه کنی همه چیز رو متوجه می شی فقط نوع فیلد خودت رو image بذار و بقیه هم که معلومه