الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الى خبراء البرمجة

بدأه وهج الصحراء في 27 مايو 2014 · 9 رد · 645 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ارجوا مساعدتي في كود استرجاع الصورة في في تصميم البرنامج التالي  

صورة البرنامج وكل شي يعمل تمام حتى استرجاع النصوص ضابط معي المشكلة في استرجاع الصورة تظهر لي رسالة

صورة واجهة البرنامج

الصورة الثانية لرسالة الخطلأ

الصورة الثالثة لقاعد البيانات

ثم اكواد البرنامج

 

453285374.jpg

 

313787483.jpg

928184256.jpg


Public Class Form1
    Dim conn As New OleDbConnection
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + IO.Directory.GetCurrentDirectory + "\arseef.accdb"
        Timer1.Enabled = True
        Timer1.Interval = 1000
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        conn.Open()
        Try
            Dim cmdinsert As New OleDbCommand
            cmdinsert.Connection = conn
            cmdinsert.CommandText = "insert into arsh values ('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + TextBox4.Text + "','" + PictureBox1.Name + "')"
            cmdinsert.ExecuteNonQuery()
            MsgBox("تم اضافة المعاملة بنجاح")
            TextBox1.Clear()
            TextBox2.Clear()
            TextBox3.Clear()
            TextBox4.Clear()
            PictureBox1.Image = Nothing
        Catch ex As Exception
            MsgBox(ex.Message.ToString)
        End Try
        conn.Close()
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        conn.Open()
        Try
            Dim cmdselect As New OleDbCommand
            cmdselect.Connection = conn
            cmdselect.CommandText = "select * from arsh where numm = '" + TextBox1.Text + "' OR subj = '" + TextBox2.Text + "'"
            Dim re As OleDbDataReader
            re = cmdselect.ExecuteReader
            If re.Read Then
                TextBox1.Text = re(0).ToString
                TextBox2.Text = re(1).ToString
                TextBox3.Text = re(2).ToString
                TextBox4.Text = re(3).ToString
                PictureBox1.Name = Name("pic").ToString
            Else
                MsgBox("عفواً لاتوجد معاملة بهذا الرقم")

            End If
        Catch ex As Exception
            MsgBox(ex.Message.ToString)

        End Try
        conn.Close()
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        OpenFileDialog1.Filter = "image file (*.jpg, *.bmp, *.png) | *.jpg; *.bmp; *.png| all files (*.*) |*.*"
        If OpenFileDialog1.ShowDialog <> Windows.Forms.DialogResult.Cancel Then
            PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName)
        End If
    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        TextBox1.Clear()
        TextBox2.Clear()
        TextBox3.Clear()
        TextBox4.Clear()
        PictureBox1.Image = Nothing
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Hide()
        Form2.Show()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Label5.Text = Microsoft.VisualBasic.TimeOfDay
    End Sub

    Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk

    End Sub
End Class

#2

وعليكم السلام ورحمة الله

 

في الواقع لا توجد صورة في قاعدة البيانات ليتم جلبها! حيث أنك قمت برفع نص اسمه pictureBox1 وتم تحويله لبايناري في حقل OLE ۔۔۔۔

 

يجب عمل Streaming للصورة ليتم رفعها وجلبها ۔۔۔

 

ابحث أخي في المنتدى وستجد دروس كثيرة لعملية رفع وجلب الصور من وإلى قاعدة البيانات

#3

الصوره عندما استعرضها واعمل لها اضافه ضمن بيانات التكست بوكس يتم الاضافه بنجاح المشكله عند الاسترجاع عن طريق البحث بالرقم مثلاً تظهر البيانات في التكست بوكس وتظهر الرساله المشكله والله اعلم انها في الكود

Picturebox1.name =name ("pic").Tostring

تم تعديل هذه المشاركة بواسطة وهج الصحراء في 27 مايو 2014 في 15:04

#4

الاستاذ محمد فؤاد الاساتذه مشرفي الvb.Net ياليت تفيدوني حول استفساري مشكورين مأجورين

#5

أخي هل تريد حفظ اسم الصورة أم الصورة نفسها في قاعدة البيانات ؟؟

#6
وهج الصحراء كتب:

الصوره عندما استعرضها واعمل لها اضافه ضمن بيانات التكست بوكس يتم الاضافه بنجاح المشكله عند الاسترجاع عن طريق البحث بالرقم مثلاً تظهر البيانات في التكست بوكس وتظهر الرساله المشكله والله اعلم انها في الكود

Picturebox1.name =name ("pic").Tostring

 

نعم تتم الإضافة بنجاح ولكن ليس للصورة !! إنظر إلى الكود التالي :

 

 

cmdinsert.CommandText = "insert into arsh values ('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + TextBox4.Text + "','" + PictureBox1.Name + "')"

 

pictureBox1.name هو ال ID للصورة وليس اسم الصورة ولا الصورة نفسها ، أنت تقوم برفع اسم ال ID للصورة وتحوله إلى Binary ، إن كنت تريد الحصول على اسم الصورة التي تقوم باستعراضها استخدم :

 

 

filedialog1.flename

 

وإذا كنت تريد رفع اسم الصورة فغير الحقل PIC في قاعدة البيانات إلى نص ، وغيد الكود التالي :

 

 

PictureBox1.Name = Name("pic").ToString

 

إلي :

 

 

TextBox5.text = re(5).ToString

 

أما إذا كنت تريد رفع الصورة نفسها إلى قاعدة البيانات ( ولا أنصح بذلك لصغر حجم الهيدر بقواعد Access ) فاستخدم Streaming method  والمنتدى ملئ بالشروحات

 

save and retreive images from Database

#7

اخي العزيز فيجولي اشكرك على كل الاجابات لكن يمكن انني لم اوصل السؤال بالطريقة الصحيحه . انا لست مبرمجاً ولكن اهوى البرمجه .انا اوضح لك مااريده....

لو ادخلت البيانات التاليه

رقم المعامله ٥٠٠

موضوعها طلب اكواد

ملف الحفظ ١٠

ملاحظات لايوجد

استعراض الصوره البحر والدلفين

اضغط على زر اضافه تم حفظ المعامله بنجاح

............

سؤالي للبحث مثلاً

ادخل رقم المعامله ٥٠٠ واضغط على زر ابحث اريد ان تظهر لي صورة البحر والدلفين مع البيانات المحفوظه بالرقم ٥٠٠

لانها تظهر لي ماعدا الصوره ارجوا ان تتحملوني على الاطاله .... مشكورين

#8

العفو أخي ولا بأس في أن تسأل ما يحلو لك ۔۔۔

 

أكرر مرة أخرى ، لن تظهر لك الصورة بالطريقة التي قمت بها ، فهي خاطئة برمجياً ومنطقياً

 

ما قمت به أخي هو جلب الصورة للبرنامج فقط ، وبمجرد إغلاق البرنامج لن تجد الصورة لأنها لم تحفظ في قاعدة البيانات ۔۔۔

 

على كل حال قمت بعمل مثال بسيط لعل أن تصل الصورة لك ، ولكن هذه الطريقة ليست الأفضل خصوصاً مع قواعد بيانات Access فحجم الهيدر على ما أعتقد 1GB ، والأفضل رفع الصورة إلى مجلد ثم استدعائها ۔۔

 

موفق إن شاء الله

SaveAndRetrieveImage.rar

#9

الف الف الف شكر لك يااخي فيجوالي جزاك الله خيراً هذا هو بالضبط ماكنت ابحث عنه ... جعله الله في موازين حسناتك .. بقي لدي سؤالين الأول / اذاكان الهيدر في الاكسس 1G فهل يوجد طريقه اخرى اقدر اخزن فيها اكبر قدر ممكن من الصور بدون اي مشاكل ..

الثاني / حسب مرفقاتك للبرنامج كيف اعمل بحث بموضوع المعامله ... وفقك الله وسدد خطاك ..

#10

العفو أخي الكريم ولك بالمثل إن شاء الله

 

بالنسبة لاستفساراتك :

 

1- من الأفضل رفع الصور إلى مجلد البرنامج والإشارة إلى مسار الصورة في سجل الملف وانتهى الموضوع ، وبالتالي لن تحتاج إلى عمل Streaming للصورة  ، فقط التالي :

dim da as new dataadapter("your select query",your connectionstring name)
dim dt as new datatable

da.fill(dt)

image1.imagelocation = dt.rows(0)("name of your column").tostring

ملاحظة : الكود السابق غير منقح وكتبته على عجالة

 

2- بالنسبة للمرفقات فبالإمكان وضع RadioButtons الأول : بحث بالرقم ، الثاني : بحث بالموضوع ، وحسب الكود التالي :

if radiobutton1.checked = true then

// ابحث بالرقم

else

// ابحث بالموضوع

end if

شاهد الصورة المرفقة

post-73446-0-11453500-1402223769_thumb.j

تم تعديل هذه المشاركة بواسطة فيجولي في 8 يونيو 2014 في 13:48

مواضيع مشابهة