تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] مساعدة في تعديل الصورة بأستخدام الباراميتر
#1
السلام عليكم 
ارجو المساعدة في حل مشكلة عدم تغير الصورة اثناء تعديل البيانات  
علما اني استخدم قاعدة بيانات access مع vb.net
وهذا هو الكود
   conn.Open()
        PictureBox7.Refresh()
        Dim arrImage() As Byte
        Dim strImage As String



        Dim myMs As New IO.MemoryStream

        If Not IsNothing(Me.PictureBox7.Image) Then
            Me.PictureBox7.Image.Save(myMs, Me.PictureBox7.Image.RawFormat)
            arrImage = myMs.GetBuffer
            strImage = "?"
        Else
            arrImage = Nothing
            strImage = "NULL"
        End If
        Try
            Dim cmdupdate As New OleDbCommand
            cmdupdate.Connection = conn
            cmdupdate.CommandText = "UPDATE tb SET id_name = '" & Me.txtid.Text & "',photo='" & strImage & "' WHERE name_n = '" + txtname.Text + "'"

            If strImage = "?" Then
                cmdupdate.Parameters.Add(strImage, OleDb.OleDbType.Binary).Value = arrImage
            End If
            For Each ar As Byte In arrImage
                myMs.WriteByte(ar)
            Next

            Me.PictureBox7.Image = System.Drawing.Image.FromStream(myMs)

            MsgBox("!تم تعديل البيانات بنجاح")


            cmdupdate.ExecuteNonQuery()


        Catch ex As Exception
            MsgBox(ex.Message.ToString)
        End Try
        conn.Close()
الرد }}}
تم الشكر بواسطة:
#2
ااشكرك اخي العزيز
البرنامج عبارة عن ازرار بحث واضافة وتعديل وحذف ومعها بكجر بوكس لعرض صورة كل اسم عند كتابته
المشكلة في زر التعديل فقط فالصورة لا تتغير مع العلم ان البيانات الاخرى تتغير فما هو الحل
قمت بارفاق البرنامج


الملفات المرفقة
.rar   WindowsApplication2.rar (الحجم : 479.81 ك ب / التحميلات : 50)
الرد }}}
تم الشكر بواسطة:
#3
(14-03-16, 06:52 AM)khodor1985 كتب : نظم مشروعك وأكوادك بهذه الطريقة :


ألأكواد :
PHP كود :
Imports System.Data.OleDb
Imports System
.IO
Public Class Form1
    Dim con 
As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\MyDB.accdb")
 
   Dim cmd As OleDbCommand
    Dim da 
As OleDbDataAdapter
    Dim ds 
As DataSet
    Dim bs 
As BindingSource
    Dim sqlstr 
As String

    Private Sub ShowPosition
()
 
       txtPosition.Text bs.Position " " "/" bs.Count
    End Sub
    Sub EnableAddbtn
()
 
       If Not String.IsNullOrWhiteSpace(txtFname.TextThen
            btnInsert
.Enabled False
            btnDelete
.Enabled True
        Else
            btnInsert
.Enabled True
            btnDelete
.Enabled False
        End 
If
 
   End Sub

    Sub EnableEditbtn
()
 
       If String.IsNullOrWhiteSpace(txtFname.TextThen
            btnUpdate
.Enabled False
        Else
            btnUpdate
.Enabled True
        End 
If
 
   End Sub

    Private Sub Form1_Load
(sender As ObjectAs EventArgsHandles MyBase.Load
        Try
            con
.Open()
 
           sqlstr "Select * From Person"
 
           cmd = New OleDbCommand(sqlstrcon)
 
           da = New OleDbDataAdapter(cmd)
 
           ds = New DataSet
            ds
.Clear()
 
           da.Fill(ds"Person")

 
           bs = New BindingSource
            bs
.DataSource ds.Tables("Person")

 
           txtID.DataBindings.Clear()
 
           txtFname.DataBindings.Clear()
 
           txtLname.DataBindings.Clear()
 
           txtAdrs.DataBindings.Clear()
 
           Pic1.DataBindings.Clear()

 
           txtID.DataBindings.Add("Text"bs"ID")
 
           txtFname.DataBindings.Add("Text"bs"Fname")
 
           txtLname.DataBindings.Add("Text"bs"Lname")
 
           txtAdrs.DataBindings.Add("Text"bs"Adrs")
 
           Pic1.DataBindings.Add("Image"bs"MyImage"22)


 
           con.Close()
 
           ShowPosition()
 
           EnableAddbtn()
 
       Catch ex As Exception
            If con
.State ConnectionState.Open Then con.Close()
 
           MsgBox(ex.Message)
 
       End Try
 
   End Sub

    Private Sub btnNew_Click
(sender As ObjectAs EventArgsHandles btnNew.Click
        txtID
.Clear()
 
       txtFname.Clear()
 
       txtLname.Clear()
 
       txtAdrs.Clear()
 
       Pic1.Image Nothing
        EnableAddbtn
()
 
       EnableEditbtn()

 
   End Sub

    Private Sub btnInsert_Click
(sender As ObjectAs EventArgsHandles btnInsert.Click
        If 
(Pic1.ImageIs Nothing Then
            MsgBox
("Enter picture before saving")
 
           Return
        End 
If

 
       Try
            con
.Open()
 
           Dim arrImg As Byte()
 
           Dim ms As New MemoryStream
            Me
.Pic1.Image.Save(msPic1.Image.RawFormat)
 
           arrImg ms.GetBuffer

            sqlstr 
"Insert Into Person(Fname,Lname,Adrs,MyImage) Values(@Fname,@Lname,@Adrs,@MyImage)"
 
           cmd = New OleDbCommand(sqlstrcon)
 
           With cmd.Parameters
                
.Add("@Fname"OleDbType.VarWChar).Value txtFname.Text
                
.Add("@Lname"OleDbType.VarWChar).Value txtLname.Text
                
.Add("@Adrs"OleDbType.VarWChar).Value txtAdrs.Text
                
.Add("@MyImage"OleDbType.Binary).Value arrImg

            End With
            cmd
.ExecuteNonQuery()

 
           For Each ar As Byte In arrImg
                ms
.WriteByte(ar)
 
           Next
            Pic1
.Image Image.FromStream(msTrue)
 
           MsgBox("Added Successfully")
 
           con.Close()

 
       Catch ex As Exception
            If con
.State ConnectionState.Open Then con.Close()
 
           MsgBox(ex.Message)
 
       End Try
 
   End Sub

    Private Sub btnAddPic_Click
(sender As ObjectAs EventArgsHandles btnAddPic.Click
        Dim OFD 
As New OpenFileDialog
        If OFD
.ShowDialog Windows.Forms.DialogResult.OK Then
            Pic1
.Image Image.FromFile(OFD.FileName)
 
       End If
 
   End Sub

    Private Sub btnFirst_Click
(sender As ObjectAs EventArgsHandles btnFirst.Click
        bs
.Position 0
        ShowPosition
()
 
   End Sub

    Private Sub btnPrev_Click
(sender As ObjectAs EventArgsHandles btnPrev.Click
        bs
.Position -= 1
        ShowPosition
()
 
   End Sub

    Private Sub btnNext_Click
(sender As ObjectAs EventArgsHandles btnNext.Click
        bs
.Position += 1
        ShowPosition
()
 
   End Sub

    Private Sub btnLast_Click
(sender As ObjectAs EventArgsHandles btnLast.Click
        bs
.Position bs.Count 1
        ShowPosition
()
 
   End Sub

    Private Sub btnSearch_Click
(sender As ObjectAs EventArgsHandles btnSearch.Click
        Try
            con
.Open()
 
           sqlstr "Select * From Person Where Fname=@Fname"
 
           cmd = New OleDbCommand(sqlstrcon)
 
           cmd.Parameters.Add("@Fname"OleDbType.VarWChar).Value txtSearch.Text
            da 
= New OleDbDataAdapter(cmd)
 
           ds = New DataSet
            ds
.Clear()
 
           da.Fill(ds"Person")

 
           bs = New BindingSource
            bs
.DataSource ds.Tables("Person")

 
           txtID.DataBindings.Clear()
 
           txtFname.DataBindings.Clear()
 
           txtLname.DataBindings.Clear()
 
           txtAdrs.DataBindings.Clear()
 
           Pic1.DataBindings.Clear()

 
           txtID.DataBindings.Add("Text"bs"ID")
 
           txtFname.DataBindings.Add("Text"bs"Fname")
 
           txtLname.DataBindings.Add("Text"bs"Lname")
 
           txtAdrs.DataBindings.Add("Text"bs"Adrs")
 
           Pic1.DataBindings.Add("Image"bs"MyImage"22)


 
           con.Close()
 
           ShowPosition()
 
           EnableAddbtn()
 
       Catch ex As Exception
            If con
.State ConnectionState.Open Then con.Close()
 
           MsgBox(ex.Message)
 
       End Try
 
   End Sub

    Private Sub btnUpdate_Click
(sender As ObjectAs EventArgsHandles btnUpdate.Click
        If 
(Pic1.ImageIs Nothing Then
            MsgBox
("Enter picture before saving")
 
           Return
        End 
If

 
       Try
            con
.Open()
 
           Dim arrImg As Byte()
 
           Dim ms As New MemoryStream
            Me
.Pic1.Image.Save(msPic1.Image.RawFormat)
 
           arrImg ms.GetBuffer

            sqlstr 
"Update Person Set Fname=@Fname,Lname=@Lname,Adrs=@Adrs,MyImage=@MyImage Where ID=@ID"
 
           cmd = New OleDbCommand(sqlstrcon)
 
           With cmd.Parameters
                
.Add("@Fname"OleDbType.VarWChar).Value txtFname.Text
                
.Add("@Lname"OleDbType.VarWChar).Value txtLname.Text
                
.Add("@Adrs"OleDbType.VarWChar).Value txtAdrs.Text
                
.Add("@MyImage"OleDbType.Binary).Value arrImg
                
.Add("@ID"OleDbType.Integer).Value txtID.Text
            End With
            cmd
.ExecuteNonQuery()

 
           For Each ar As Byte In arrImg
                ms
.WriteByte(ar)
 
           Next
            Pic1
.Image Image.FromStream(msTrue)
 
           MsgBox("Updated Successfully")
 
           con.Close()
 
       Catch ex As Exception
            If con
.State ConnectionState.Open Then con.Close()
 
           MsgBox(ex.Message)
 
       End Try
 
   End Sub

    Private Sub btnDelete_Click
(sender As ObjectAs EventArgsHandles btnDelete.Click
        Try
            If MsgBox
("Do you want to delete record ?"MsgBoxStyle.YesNo"Caution") = MsgBoxResult.Yes Then
                con
.Open()
 
               sqlstr "Delete From Person Where ID=@ID"
 
               cmd = New OleDbCommand(sqlstrcon)
 
               cmd.Parameters.Add("@ID"OleDbType.Integer).Value txtID.Text
                cmd
.ExecuteNonQuery()
 
               MsgBox("Deleted successfully")
 
               con.Close()
 
           End If
 
           ShowPosition()
 
       Catch ex As Exception
            If con
.State ConnectionState.Open Then con.Close()
 
           MsgBox(ex.Message)
 
       End Try
 
   End Sub
End 
Class 

المشروع :

أخوك الصغير khodor1985

أتمنى لك التوفيق

اخي العزيز اشكرك جدا جدا واتمنى لك التوفيق Smile
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم