تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[مشروع] اضافة وعرض اى نوع من الملفات داخل قاعدة بيانات Access
#1
السلام عليكم ورحمة الله وبركاته

اليوم اضع بين ايديكم مثال مبسط 
مع الشرح بداخل الكود فى السورس
عن كيفية تخزين الملفات داخل قاعدة البيانات 
و اعادة استدعاء الملف من قاعدة البيانات وفتحه

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


صورة تصميم الجدول المستخدم بالسورس المرفق


مرفق بالمرفقات السورس + قاعدة البيانات Access + برنامج للمعنة والاختبار + الصور المستخدمة بالموضوع
فقط قم ملف قاعدة البيانات المرفقة بجاب البرنامج عند اتمام التشغيل
ويمكنك بعد ذلك التعامل فى السورس مباشراً بعد ادراج قاعدة البيانات بجانب البرنامج

السورس المرفق 2015
اتمنى ان يكون الكود مبسط لدا الجميع
كما ان يكون الوضع سهل وبسيط لطريقة الاستخدام

وبالنهاية الكود كاملاً خاص السورس المرفق
كود :
Imports System.Data.OleDb
Imports System.IO


Public Class Form1

   ' قم بتغيير كود الاتصال بقاعدة البيانات فى السطر التالى
   Dim con As OleDbConnection = New OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=Database.accdb")
   Dim cmd As OleDbCommand
   Dim Da As OleDbDataAdapter
   Dim dt As New DataTable
   ' تعريف متغيير من نوع رقم ليتم تسجيل به رقم الصف عند تحديده من الداتا جريد
   Dim DgId As Integer

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       GetLoadData()
   End Sub

   Private Sub GetLoadData()
       ' تفريغ DT
       dt.Clear()
       ' جلب البيانات من قاعدة البيانات
       cmd = New OleDbCommand("select * from TB_File", con)
       Da = New OleDbDataAdapter(cmd)
       Da.Fill(dt)
       ' تعبئة الداتا جريد بالبيانات التى تم تعبئتها
       dataGridView1.DataSource = dt
       ' تسمية الاعمدة فى الداتا جريد
       dataGridView1.Columns(0).HeaderText = "ID"
       dataGridView1.Columns(1).HeaderText = "File Name"
       dataGridView1.Columns(2).HeaderText = "File Extension"
       ' اخفاء العمود الاخير تجنباً من ظهور رسالة اخطاء
       ' خصوصاً اذا كان الملف المرفق ليس صورة
       dataGridView1.Columns(3).Visible = False
   End Sub

   Private Sub dataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dataGridView1.CellClick
       ' اعطاء المتغيير المعرف من نوع رقم قيمة رقم الصف
       DgId = e.RowIndex
   End Sub

   Private Sub button2_Click(sender As Object, e As EventArgs) Handles button2.Click
       ' التحقق اذا كان الداتا جريد ممتلئة ام فارغة لتنفيذ كود فتح الملف
       If (dataGridView1.RowCount > 0) Then
           ' تحويل الكود المسجل بقاعدة البيانات الى ملف
           Dim ff() As Byte = CType(dt.Rows(DgId)(3), Byte())
           Dim FPath = Application.StartupPath & "\" & dt.Rows(DgId)(1).ToString() & dt.Rows(DgId)(2).ToString()
           Dim FFS As FileStream = New FileStream(FPath, FileMode.Create, FileAccess.Write)
           FFS.Write(ff, 0, ff.Length)
           FFS.Close()
           ' تنفيذ فتح الملف بعد انشائه بالكود السابق
           Process.Start(FPath)
       Else
           ' رسالة تنبيه بان الداتا جريد فارغة
           MsgBox("Please Add Any Data So You Can Open File Selected.")
       End If
   End Sub

   Private Sub button3_Click(sender As Object, e As EventArgs) Handles button3.Click
       ' تحويل الملف الى Byte
       Dim FFS As FileStream = New FileStream(textBox2.Text, FileMode.Open)
       Dim FBR As BinaryReader = New BinaryReader(FFS)
       Dim FileCon() As Byte = FBR.ReadBytes(FFS.Length)
       FFS.Close()
       FBR.Close()

       ' اضافة البيانات بقاعدة البيانات
       cmd = New OleDbCommand("Insert into TB_File (FileName,FileExt,Attachment) Values (@FileName,@FileExt,@Attachment)", con)
       con.Open()
       cmd.Parameters.Add(New OleDbParameter("@FileName", SqlDbType.NVarChar)).Value = textBox1.Text
       cmd.Parameters.Add(New OleDbParameter("@FileExt", SqlDbType.NVarChar)).Value = Path.GetExtension(textBox2.Text)
       cmd.Parameters.Add(New OleDbParameter("@Attachment", SqlDbType.VarBinary)).Value = FileCon
       cmd.ExecuteNonQuery()
       con.Close()
       MsgBox("OK!")
       ' تحميل البيانات بالداتا جريد
       GetLoadData()
       ' تفريغ كلاً من اداء النصوص
       textBox1.Clear()
       textBox2.Clear()
   End Sub

   Private Sub textBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles textBox1.KeyPress
       If Not Char.IsLetter(e.KeyChar) And Not e.KeyChar = Chr(Keys.Delete) And Not e.KeyChar = Chr(Keys.Back) And Not e.KeyChar = Chr(Keys.Space) Then e.Handled = True
   End Sub

   Private Sub textBox1_TextChanged(sender As Object, e As EventArgs) Handles textBox1.TextChanged
       ' التحقق باذا البيانات مدخلة لاتمام تفعيل زر الحفظ
       If (String.IsNullOrWhiteSpace(textBox2.Text) OrElse String.IsNullOrWhiteSpace(textBox1.Text)) Then
           button3.Enabled = False
       Else
           button3.Enabled = True
       End If
   End Sub

   Private Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click
       ' اختيار الملف المطلوب استخدامه للحفظ بقاعدة البيانات
       Dim OFD As OpenFileDialog = New OpenFileDialog()
       Dim dlgRes As DialogResult = OFD.ShowDialog()
       If (Not dlgRes = DialogResult.Cancel) Then
           ' مسار الملف كاملاً
           textBox2.Text = OFD.FileName
           ' التحقق باذا البيانات مدخلة لاتمام تفعيل زر الحفظ
           ' التحقق باذا البيانات مدخلة لاتمام تفعيل زر الحفظ
           If (String.IsNullOrWhiteSpace(textBox2.Text) OrElse String.IsNullOrWhiteSpace(textBox1.Text)) Then
               button3.Enabled = False
           Else
               button3.Enabled = True
           End If
       End If
   End Sub
End Class

مواضيع ذات صلة:
[مشروع][C#] اضافة وعرض اى نوع من الملفات داخل قاعدة بيانات SQL.
- [مشروع][C#] اضافة وعرض اى نوع من الملفات داخل قاعدة بيانات Access.
[مشروع][VB.NET] اضافة وعرض اى نوع من الملفات داخل قاعدة بيانات SQL.
[مشروع][VB.NET] اضافة وعرض اى نوع من الملفات داخل قاعدة بيانات Access.

تحياتى للجميع
وتمنياتى لكم التوفيق الدائم


الملفات المرفقة
.zip   Pro Access.zip (الحجم : 45.95 ك ب / التحميلات : 205)
.zip   IMG.zip (الحجم : 9.06 ك ب / التحميلات : 138)
.zip   Store And Retrieve Files.zip (الحجم : 51.62 ك ب / التحميلات : 223)
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
#2
بارك الله فيك................ تقبل الله منا و منك الصيام و القيام
هَٰٓؤُلَآءِ قَوْمُنَا ٱتَّخَذُوا۟ مِن دُونِهِۦٓ ءَالِهَةً لَّوْلَا يَأْتُونَ عَلَيْهِم بِسُلْطَٰنٍۭ بَيِّنٍ فَمَنْ أَظْلَمُ مِمَّنِ ٱفْتَرَىٰ عَلَى ٱللَّهِ كَذِبًا
الرد
تم الشكر بواسطة: elgokr
#3
لى ولك وللجميع بارم الله
وتقبل الله منا الصيام وجمع الاعمال الصالحة

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: YousefOkasha
#4
كلمة شكراً ما تكفي.. والمعنى أكبر ما توفيه.. لو بيدي العمر أعطيه.. أعبّر له عن مدى شكري.
الرد
تم الشكر بواسطة: elgokr
#5
الشكر لله والحمد لله
والحمد لله على كل حال

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد
تم الشكر بواسطة: YousefOkasha , YousefOkasha , مريم 34


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Wink [مشروع] مشروع اضافة تاثيرات الانتقال من فورم لفورم اخر مع السورس كود ahmadpal 0 57 , 08:43 PM
آخر رد: ahmadpal
  وسائل البحث في قاعدة بيانات sql server العتيق 0 81 19-01-20, 01:36 AM
آخر رد: العتيق
  [مشروع] اضافة وعرض اى نوع من الملفات داخل قاعدة بيانات SQL elgokr 5 1,154 27-12-19, 11:03 PM
آخر رد: خالد يحي الجمره
  [مثال] حفظ ملفات لـ PDF و الوورد والاكسيل داخل قاعدة البيانات( تحديث جديد) جميل علي 17 8,301 26-12-19, 06:57 PM
آخر رد: علي كعبي
  اضافة وحذف وتعديل البيانات في datagridview بدون قاعدة بيانات ggtt17121985 0 208 10-12-19, 01:32 AM
آخر رد: ggtt17121985
  البحث المتعدد من قاعدة البيانات اكسس alshandodi 0 242 03-12-19, 08:06 PM
آخر رد: alshandodi
  سحب البيانات من قاعدة بيانات أكسيس access وعرضها في أداة Combobox مع عدم تكرار البيان ggtt17121985 1 258 25-11-19, 05:39 PM
آخر رد: asemshahen5
Wink [مشروع] تحريك عناصر داخل الفورم او تحريك نفس الفورم من خلال اضافة ادوات للفيجوال ستوديو ahmadpal 2 273 24-11-19, 12:27 AM
آخر رد: ahmadpal
  برنامج لادارة الدروس الخصوصية VB.NET2013& Access moaath.khalaf 15 7,244 09-11-19, 06:11 PM
آخر رد: mihabelheny
Video [مشروع] لعبة إختبر معلوماتك [أسئلة عشوائية]+[قاعدة بيانات xml] + [تأثيرات صوتية] عبدالله الدوسري 6 2,320 27-10-19, 05:05 PM
آخر رد: m7mood3toom

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


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