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

نسخة كاملة : يجبرني البرنامج على حفظ صورة الموظف!!
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
لدي برنامج شؤون الموظفين ، عند حفظ بيانات الموظف كاملة و لكن بدون إدخال صورته لا يقبل البرنامج ، يظهر لي الخطأ المرفق صورته
كيف اسمح للبرنامج أن يحفظ المدخلات بدون الصورة.

كود الحفظ
كود :
Public Sub Insert_Hadi11(ByVal ID As Long, ByVal Ename As String, ByVal Ro As String, ByVal ID1 As String, ByVal ID2 As String, ByVal ID3 As String, ByVal Jawal As String, ByVal School As String, ByVal DateM As String, ByVal DateT As String, ByVal DateTr As String, ByVal Zawaj As String, ByVal Saha As String, ByVal Tsaha As String, ByVal Jaha As String, ByVal Mrkz As String, ByVal Moga As String, ByVal T_M As String, ByVal ToQ As String, ByVal StartD As String, ByVal EndDate As String, ByVal nameQ As String, ByVal SQ As String, ByVal JawalQ As String, ByVal MM As String, ByVal Photo1 As PictureBox)
       Dim Cmd As New OleDbCommand
       With Cmd
           .Connection = con
           .CommandType = CommandType.Text
           .CommandText = "Insert Into Hadi11 ( ID,Ename,Ro,ID1,ID2,ID3,Jawal,School,DateM,DateT,DateTr,Zawaj,Saha,Tsaha,Jaha,Mrkz,Moga,T_M,ToQ,StartD,EndDate,nameQ,SQ,JawalQ,MM,Photo1)values(@ID,@Ename,@Ro,@ID1,@ID2,@ID3,@Jawal,@School,@DateM,@DateT,@DateTr,@Zawaj,@Saha,@Tsaha,@Jaha,@Mrkz,@Moga,@T_M,@ToQ,@StartD,@EndDate,@nameQ,@SQ,@JawalQ,@MM,@Photo1)"
           .Parameters.Clear()
           .Parameters.AddWithValue("@ID", OleDbType.Integer).Value = ID
           .Parameters.AddWithValue("@Ename", OleDbType.VarChar).Value = Ename
           .Parameters.AddWithValue("@Ro", OleDbType.VarChar).Value = Ro
           .Parameters.AddWithValue("@ID1", OleDbType.VarChar).Value = ID1
           .Parameters.AddWithValue("@ID2", OleDbType.VarChar).Value = ID2
           .Parameters.AddWithValue("@ID3", OleDbType.VarChar).Value = ID3
           .Parameters.AddWithValue("@Jawal", OleDbType.VarChar).Value = Jawal
           .Parameters.AddWithValue("@School", OleDbType.VarChar).Value = School
           .Parameters.AddWithValue("@DateM", OleDbType.VarChar).Value = DateM
           .Parameters.AddWithValue("@DateT", OleDbType.VarChar).Value = DateT
           .Parameters.AddWithValue("@DateTr", OleDbType.VarChar).Value = DateTr
           .Parameters.AddWithValue("@Zawaj", OleDbType.VarChar).Value = Zawaj
           .Parameters.AddWithValue("@Saha", OleDbType.VarChar).Value = Saha
           .Parameters.AddWithValue("@Tsaha", OleDbType.VarChar).Value = Tsaha
           .Parameters.AddWithValue("@Jaha", OleDbType.VarChar).Value = Jaha
           .Parameters.AddWithValue("@Mrkz", OleDbType.VarChar).Value = Mrkz
           .Parameters.AddWithValue("@Moga", OleDbType.VarChar).Value = Moga
           .Parameters.AddWithValue("@T_M", OleDbType.VarChar).Value = T_M
           .Parameters.AddWithValue("@ToQ", OleDbType.VarChar).Value = ToQ
           .Parameters.AddWithValue("@StartD", OleDbType.VarChar).Value = StartD
           .Parameters.AddWithValue("@EndDate", OleDbType.VarChar).Value = EndDate
           .Parameters.AddWithValue("@nameQ", OleDbType.VarChar).Value = nameQ
           .Parameters.AddWithValue("@SQ", OleDbType.VarChar).Value = SQ
           .Parameters.AddWithValue("@JawalQ", OleDbType.VarChar).Value = JawalQ
           .Parameters.AddWithValue("@MM", OleDbType.VarChar).Value = MM
           Dim ms As New MemoryStream()
           Dim bmpImage As New Bitmap(Photo1.Image)
           bmpImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
           Dim data As Byte() = ms.GetBuffer()
           Dim p As New OleDbParameter("@Photo1", OleDbType.Binary)
           p.Value = data
           .Parameters.Add(p)
       End With
       If con.State = 1 Then con.Close()
       con.Open()
       Cmd.ExecuteNonQuery()
       con.Close()
       MsgBox("تم إضافة السجل بنجاح", MsgBoxStyle.Information, "حفظ")
       Cmd = Nothing
   End Sub
السّلام عليكم و رحمة الله و بركاته
حتّى تتفادى أخي الكريم هذه الإشكاليّة تماما و بدون إلتباسات
قم بوضع صورة إفتراضية لعدم وجودها بالريسورس .. مثلا ..

و بزر الأمر الإضافة .. إستعمل ما يلي :
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
   If MsgBox("هل تريد إضافة سجل جديد ؟ ", MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.OkCancel, "إضافة سجل جديد") = MsgBoxResult.Cancel Then Exit Sub
   PictureBox1.Image = My.Resources.Nopicture1
End Sub

بعدها ستختار طبعا الصورة التي تريد إضافتها
إذا لم تقم بالإختيار .. تلقائيا سيتم حفظ الصورة أعلاه الإفتراضية
هكذا تضمن دائما وجود الصورة  لديك
تحياتي
الف شكر أخي عبد العزيز البسكري

تم تطبيق الخطوات بنجاح ،،

جزاك الله خير و كثر من أمثالك
يمكنك استخدام شرط عند الحفظ 
If picturbox1 .image=is nothing then 

Else 

Save image code
End if