منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكله في ادراج صورة لقاعدة بيانات سيكول
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
عند ادراج صورة علي هيئة binary لقاعدة بيانات سيكول.يحدث مشكله ويعطي timeout في حالة ان كان حجم الصورة اكثر من 12 كيلوبايت علي الرغم من اني استخدم حجم حقل
varbinary(max)
ضع image بدلا من (varbinary(max
للاسف نفس المشكلة مع تغغير الحقل ال image
timeout
هذه ليست لها علاقة بموضوع نوع الحقل.
هذي تخص موضوع محدودية الذاكرة.
جرب احد الامثلة بالمنتدى فان عمل بلا مشاكل فهذا يعني طريقة التخزين فيها خطأ وان ظهرت نفس رسالة الخطا فراجع خيارات الذاكرة للجهاز.
إذا كان نوع حقل الصورة image ولم تستطيع حفظ الصورة، فلديك خطأ في تكوين الكود.
ضع نوع الحقل الى Image

هذا كود لعملية الادخال او التحديث اذا كانت الصوره في PictureBox

كود :
                   Dim CMD As SqlCommand
                   CMD = New SqlCommand("update T_NAMES set c_names_image=@c_names_image where c_names_id='" & NAMES_id_code.Trim & "'", SQLCLIENTCN)
                   CMD.Parameters.Add(New SqlClient.SqlParameter("@c_names_image", SqlDbType.Image)).Value = imgToByteConverter(PictureBox1.Image)
                   CMD.ExecuteNonQuery()
                   CMD.Dispose()

وهذا الكود لتحويل الصوره من image الى Byte

كود :
'convert image to bytearray
   Public Function imgToByteConverter(ByVal inImg As Image) As Byte()
       Dim imgCon As New ImageConverter()
       Return DirectCast(imgCon.ConvertTo(inImg, GetType(Byte())), Byte())
   End Function

وهذا الكود لتحويل من bytearray الى image


كود :
'convert bytearray to image
   Public Function byteArrayToImage(ByVal byteArrayIn As Byte()) As Image
       Using mStream As New MemoryStream(byteArrayIn)
           Return New Bitmap(Image.FromStream(mStream))
       End Using
   End Function
نفس المشكلة للاسف
إذا كان نوع حقل الصورة image واستمرت المشكلة، فهذا يعني أن لديك خطأ في تكوين الكود.
PHP كود :
Try
           
            
Dim ms As New MemoryStream
            Dim arrimage
() As Byte = {0}
            If (
Pic.Image IsNot NothingThen
                Pic
.Image.Save(msPic.Image.RawFormat)
                
arrimage ms.GetBuffer
                ms
.Close()
            
End If
            
Dim strsql As String
            Dim acscmd 
As New SqlCommand
            
'   Dim con As New SqlConnection

            Dim con As New SqlConnection
            If IO.File.Exists(Application.StartupPath & "\DATABASE\bak2019.mdf") Then
                If My.Settings.constr = "" Then
                    con = New SqlConnection(("Data source=.\SQLEXPRESS;AttachDbFilename= " & Application.StartupPath & "\DATABASE\bak2019.mdf;Integrated Security=True;User Instance=True"))

                Else
                    If IO.File.Exists(My.Settings.constr) Then
                        con = New SqlConnection(("Data source=.\SQLEXPRESS;AttachDbFilename= " & Application.StartupPath & "\DATABASE\bak2019.mdf;Integrated Security=True;User Instance=True"))

                    Else
                        If MessageBox.Show("هل تريد تحديد مسار قاعدة البيانات", "خطأ قاعدة البيانات غير موجودة", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign) = DialogResult.Yes Then

                            Database.Show()
                        Else
                            MessageBox.Show("سيتم استخدام قاعدة البيانات الحالية ", "تنويه", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
                            con = New SqlConnection(("Data source=.\SQLEXPRESS;AttachDbFilename= " & Application.StartupPath & "\DATABASE\bak2019.mdf;Integrated Security=True;User Instance=True"))

                        End If
                    End If


                End If

            Else
                MessageBox.Show("قاعدة البيانات غير موجودة", "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
                '  
Exit Function
            
End If
           
            
strsql "update labdetails set itmnme=@itmnme,itmspecial=@itmspecial,itmadress=@itmadress,itmphone=@itmphone,itmtime=@itmtime,itmlogo=@itmlogo,itmprint=@itmprint,itmnameenglish=@itmnameenglish,itmspecialenglish=@itmspecialenglish,signature1=@signature1,signature2=@signature2"

             
acscmd.CommandText strsql
            acscmd
.Connection con
            con
.Open()

            
acscmd.Parameters.AddWithValue("@itmnme"txtitmname.Text)
            
acscmd.Parameters.AddWithValue("@itmspecial"txtspeciality.Text)
            
acscmd.Parameters.AddWithValue("@itmadress"txtadress.Text)
            
acscmd.Parameters.AddWithValue("@itmphone"txtphone.Text)
            
acscmd.Parameters.AddWithValue("@itmtime"txttime.Text)
            
acscmd.Parameters.AddWithValue("@itmlogo"IIf(Pic.Image IsNot NothingarrimageDBNull.Value))
            
            
acscmd.Parameters.AddWithValue("@itmprint"printchck.Checked)
            
acscmd.Parameters.AddWithValue("@itmnameenglish"Txtitm.Text)
            
acscmd.Parameters.AddWithValue("@itmspecialenglish"txtspecial.Text)
            
acscmd.Parameters.AddWithValue("@signature1"txtsign1.Text)
            
acscmd.Parameters.AddWithValue("@signature2"txtsign2.Text)
          

            
acscmd.ExecuteNonQuery()
            
acscmd.Dispose()
            
con.Close()
            
con.Dispose()
            
Me.Close()
           

        Catch 
ex As Exception
            MsgBox
(ex.Message)
        
End Try 
قم باستخدام هذا المشروع
http://vb4arb.com/vb/showthread.php?tid=28906
الصفحات : 1 2