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

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

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


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


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

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

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


Public Class Form1

   ' قم بتغيير كود الاتصال بقاعدة البيانات فى السطر التالى
   Dim con As SqlConnection = New SqlConnection("Server=.;Database=test;Integrated Security=True")
   Dim cmd As SqlCommand
   Dim Da As SqlDataAdapter
   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 SqlCommand("select * from TB_File", con)
       Da = New SqlDataAdapter(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 SqlCommand("Insert into TB_File (FileName,FileExt,Attachment) Values (@FileName,@FileExt,@Attachment)", con)
       con.Open()
       cmd.Parameters.Add(New SqlParameter("@FileName", SqlDbType.NVarChar)).Value = textBox1.Text
       cmd.Parameters.Add(New SqlParameter("@FileExt", SqlDbType.NVarChar)).Value = Path.GetExtension(textBox2.Text)
       cmd.Parameters.Add(New SqlParameter("@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   IMG.zip (الحجم : 7.74 ك ب / التحميلات : 493)
.zip   Script Table as SQL Server.zip (الحجم : 439 بايت / التحميلات : 555)
.zip   Store And Retrieve Files.zip (الحجم : 15.94 ك ب / التحميلات : 650)
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
#2
بارك الله فيك يالمبدع
الرد }}}
تم الشكر بواسطة: elgokr , asemshahen5 , asemshahen5 , ابراهيم ايبو
#3
جزاك الله خير مشرفنا المبدع الكريم elgokr
يا رحمن الدنيا والآخرة ورحيمهما
الرد }}}
تم الشكر بواسطة: elgokr , ابراهيم ايبو , asemshahen5
#4
جزيتَ خيراً وربُّ الكعبة
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: elgokr , asemshahen5 , ابراهيم ايبو
#5
(10-03-19, 03:07 AM)DOX.1 كتب : بارك الله فيك يالمبدع

لى ولك وللجميع بامر لله

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

(10-03-19, 03:38 AM)حريف برمجة كتب : جزاك الله خير مشرفنا المبدع الكريم elgokr

تسلم اخى الغالى حريف برمجة
وجزاك الله كل خير وللجميع يارب

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

(10-03-19, 11:16 AM)مصمم هاوي كتب : جزيتَ خيراً وربُّ الكعبة


لى ولك وللجميع يارب


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

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


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو
#6
شكرا جزيلا
الرد }}}
تم الشكر بواسطة: asemshahen5 , abubasilIraq , ابراهيم ايبو , kiki
#7
ممتاز جدا ، اشكرك كثيرا ، هذا ما كنت ابحث عنه باستخدام vba
حيث كنت استخدم الاكسس لرفع ملفات الى السيرفر واقرنها بكائن ole
فشكرا شكرا
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , kiki , asemshahen5
#8
السلام عليكم ورحمة الله وبركاته
يعطيك العافيه وبارك الله فيك
انا عني مشكلة في فتح الملف وهي عرض أول ملف مرفق في GridView فقط يعني إذا أرفقط ملف أخر وقمت بفتحه يتم فتح أول ملف GridView فقط.



كود :
' التحقق اذا كان الداتا جريد ممتلئة ام فارغة لتنفيذ كود فتح الملف
      If (GridView1.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 Selecte
الرد }}}
تم الشكر بواسطة:
#9
السلام عليكم اخي الكريم ارجو المساعده في ادخال البصمه الاصبع من خلال الاردوينو وحساس البصمه الى القاعده البيانات المربوطه ببرنامج الفجول مع المثال بصيط ان وجد اكون شاكر جهودكم
الرد }}}
تم الشكر بواسطة:
#10
(04-04-20, 03:43 AM)محمد العامر كتب : السلام عليكم ورحمة الله وبركاته
يعطيك العافيه وبارك الله فيك
انا عني مشكلة في فتح الملف وهي عرض أول ملف مرفق في GridView فقط يعني إذا أرفقط ملف أخر وقمت بفتحه يتم فتح أول ملف GridView فقط.



كود :
' التحقق اذا كان الداتا جريد ممتلئة ام فارغة لتنفيذ كود فتح الملف
      If (GridView1.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 Selecte


نفس المشكلة رجاء ممكن الحل
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  برنامج البحث عن لقطة داخل صورة أخرى Taha Okla 4 1,281 27-03-24, 04:23 PM
آخر رد: عبدالكريم برشدان
  اتصال قاعدة البيانات بالسرفر atefkhalf2004 10 369 25-02-24, 09:15 PM
آخر رد: atefkhalf2004
  انشاء قاعدة بيانات اكسس بالكود Kamil 0 207 17-02-24, 10:43 PM
آخر رد: Kamil
  [مثال] مثال لنسخ وإستعادة قاعدة البيانات ( تحديث) نسخ تلقائي للقاعدة حسب اليوم والساعة جميل علي 81 48,206 10-02-24, 11:26 AM
آخر رد: محمد العموري
  تحريك اي عنصر داخل الفورم Kamil 0 190 13-01-24, 10:52 PM
آخر رد: Kamil
  طريقة سهلة للاتصال بقاعدة بيانات SQL مع اضافة ايقونات للتحكم في تدفق البيانات ggtt17121985 0 557 06-11-23, 10:16 AM
آخر رد: ggtt17121985
  مشروع تعدد لغات للبرنامج من قاعدة بيانات MsAccess asemshahen5 6 3,665 18-05-23, 03:39 AM
آخر رد: mohamed gida
Star [مشروع] كيفية نقل البيانات الموجودة في الجداول داخل قاعدة البيانات الاولى إلى قاعدة البيانات aliday03 5 1,172 26-03-23, 03:19 PM
آخر رد: sanyor77
Lightbulb عمل Attach و Detach و Backup و Restore لقاعدة بيانات MS Sql Server asemshahen5 19 8,895 19-03-23, 09:01 PM
آخر رد: atefkhalf2004
Photo [VB.NET] أحتاج مساعدتكم لطباعة بيانات الفورم في كرستال ربورت Sidiki 1 641 25-02-23, 08:36 PM
آخر رد: Taha Okla

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


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