كود :
Dim NameImage As String = String.Empty ' تعريف متغير نصي قيمته فارغة
'----------Public sub insert----------
Public Sub insert_Personal(Cv_Id As Integer, Cv_FullName As String, Cv_Photo As Byte())
Dim Cmd As New OleDbCommand()
If NameImage = "?" Then ' اذا كان المتغير فيه قيمة نحن وضعناها اشارة استفهام سيتم الحفظ مع وجود صورة
Cmd = New OleDbCommand("insert into Personal(Cv_Id,Cv_FullName,Cv_Photo) Values(@Cv_Id,@Cv_FullName,@Cv_Photo)", con)
Else ' المتغير ليس فيه قيمة سيتم التعديل بدون صورة
Cmd = New OleDbCommand("insert into Personal(Cv_Id,Cv_FullName) Values(@Cv_Id,@Cv_FullName)", con)
End If
' سيتم استخدام الباراميترات بناء على جملة الانسرت
Cmd.Parameters.Add(New OleDbParameter("@Cv_Id", OleDbType.Integer)).Value = Cv_Id
Cmd.Parameters.Add(New OleDbParameter("@Cv_FullName", OleDbType.VarWChar)).Value = Cv_FullName
Cmd.Parameters.Add(New OleDbParameter("@Cv_Photo", OleDbType.LongVarBinary)).Value = Cv_Photo
If con.State = ConnectionState.Open Then con.Close()
con.Open()
Cmd.ExecuteNonQuery()
con.Close()
MessageBox.Show("تم حفظ البيانات بنجاح", "حفظ", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
'----------Public Sub Update----------
Public Sub Update_Personal(Cv_FullName As String, Cv_Photo As Byte(), Cv_Id As Integer)
Dim Cmd As New OleDbCommand()
If NameImage = "?" Then ' اذا كان المتغير فيه قيمة نحن وضعناها اشارة استفهام سيتم التعديل مع وجود صورة وفق الباراميترات التالية
Cmd = New OleDbCommand("Update Personal set Cv_FullName=@Cv_FullName,Cv_Photo=@Cv_Photo Where Cv_Id=@Cv_Id", con)
Cmd.Parameters.Add(New OleDbParameter("@Cv_FullName", OleDbType.VarWChar)).Value = Cv_FullName
Cmd.Parameters.Add(New OleDbParameter("@Cv_Photo", OleDbType.LongVarBinary)).Value = Cv_Photo
Cmd.Parameters.Add(New OleDbParameter("@Cv_Id", OleDbType.Integer)).Value = Cv_Id
Else ' المتغير ليس فيه قيمة سيتم التعديل بدون صورة وفق الباراميترات التالية
Cmd = New OleDbCommand("Update Personal set Cv_FullName=@Cv_FullName Where Cv_Id=@Cv_Id", con)
Cmd.Parameters.Add(New OleDbParameter("@Cv_FullName", OleDbType.VarWChar)).Value = Cv_FullName
Cmd.Parameters.Add(New OleDbParameter("@Cv_Id", OleDbType.Integer)).Value = Cv_Id
End If
If con.State = ConnectionState.Open Then con.Close()
con.Open()
Cmd.ExecuteNonQuery()
con.Close()
MessageBox.Show("تم تعديل البيانات بنجاح ", "تعديل", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
Private Sub Btn_Save_Click(sender As Object, e As EventArgs) Handles Btn_Save.Click
Try
Dim Byteimage() As Byte
Dim Ms As New MemoryStream()
If Not (Pb_Cv_Photo.Image Is Nothing) Then
Pb_Cv_Photo.Image.Save(Ms, Pb_Cv_Photo.Image.RawFormat)
Byteimage = Ms.ToArray()
NameImage = "?" ' اسناد قيمة اشارة ؟ للمتغير النصي عندما نريد تخزين صورة
Else
Byteimage = Nothing
NameImage = "null" ' اسناد قيمة فارغ للمتغير النصي عندما لا نريد تخزين صورة
End If
insert_Personal(Txt_Cv_Id.Text, Txt_Cv_FullName.Text, Byteimage)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub Btn_Update_Click(sender As Object, e As EventArgs) Handles Btn_Update.Click
Try
If MessageBox.Show("هل تريد تعديل السجل؟", "Alert", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
Dim byteimage() As Byte
Dim ms As New MemoryStream()
If Not (Pb_Cv_Photo.Image Is Nothing) Then
Pb_Cv_Photo.Image.Save(ms, Pb_Cv_Photo.Image.RawFormat)
byteimage = ms.ToArray()
NameImage = "?" ' اسناد قيمة اشارة ؟ للمتغير النصي عندما نريد تخزين صورة
Else
byteimage = Nothing
NameImage = "null" ' اسناد قيمة فارغ للمتغير النصي عندما لا نريد تخزين صورة
End If
Update_Personal(Txt_Cv_FullName.Text, byteimage, Txt_Cv_Id.Text)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub