تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيفية حفظ ملف pdf في قاعدة بيانات sql
#1
السلام عليكم و رحمة الله وباركاته ..حياكم الله اخواني ..
عند ملفات pdf استطعت ان احفظه في قاعدة البيانات sql .. المشكلة انني لم استطيع استدعاء الملفات من قاعدة البيانات وعرضه ارجو مساعدتي وجزاكم الله خيرا
الرد
تم الشكر بواسطة:
#2
هل تجد ماتريد بالموضوع التالي:
http://vb4arb.com/vb/thread-2472.html
الرد
تم الشكر بواسطة: abid
#3
حياك الله اخ سعود وجزاك الله خير بس المشكلة ان pdf مش مثل صور لابد اني اجمع pdf في مكان بعدين اعرضو هنا المشكلة انا مبتدئ وجزاك الله خير مرة تانية
الرد
تم الشكر بواسطة:
#4
.....

لحفظ ملفات مثل PDF أو حتى exe يمكن حفظها في قاعدة البيانات في صورة بايناري ()Byte ثم عند قراءتها يتم تحويلها إلى ملف ومن ثم تشغيلها إذا أردنا ذلك

هذا مثال لحفظ ملفات PDF وعرض أسماءها في ListBox ومنها يتم الاختيار وتشغبله بواسطة البرنامج الإفتراضي له والذي غالباً هو AcrobatReader

أولا إعمل جدول في قاعدة البيانات SQLServer سواء في tempdb أو أي اسم آخر وذلك كالتالي
table1 : إسم الجدول
id : ترقيم تلقائي من نوع INT
pdfName : إسم الملف من نوع NVARCHAR بطول حوالي 200 أو أكثر
pdfData : بيانات الملف الرقمية من نوع IMAGE حيث أن Image هو عبارة عن بيانات رقمية ولذلك سنستغله في هذه المهمة

أضف في الفورم
ListBox1 لعرض أسماء الملفات المخزنة في قاعدة البيانات
Button1 لإضافة ملف PDF إلى قاعدة البيانات
Button2 لعرض الملف المحدد في ListBox1 بواسطة البرنامج الإفتراضي له
كود :
Public Class Form1

    Dim con As New SqlClient.SqlConnection("Data Source=.\SQLEXPRESS; Initial Catalog=tempdb; Integrated Security=True")

    ' إعمل التالي في قاعدة البيانات
    ' Table:   الجدول
    '   table1
    ' Columns: الأعمدة
    '   id       INT IDENTITY
    '   pdfName  NVARCHAR(200)  ' إسم الملف
    '   pdfData  IMAGE           ' لأن الصورة بايناري فسنستغلها لبيانات الملف


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ListBoxFill() ' تعبئة
    End Sub

    Private Sub ListBoxFill()
        Using da As New SqlClient.SqlDataAdapter(" SELECT id, pdfName FROM [table1] ", con)
            Dim dt As New DataTable
            da.Fill(dt)
            Me.ListBox1.DataSource = dt
            Me.ListBox1.ValueMember = "id"
            Me.ListBox1.DisplayMember = "pdfName"
        End Using
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Using op As New OpenFileDialog
            op.Filter = "PDF files (*.pdf)|*.pdf"
            If op.ShowDialog = Windows.Forms.DialogResult.OK Then
                Dim data As Byte() = IO.File.ReadAllBytes(op.FileName)

                Dim sql As String = "INSERT INTO [Table1] (pdfName, pdfData) VALUES(@pdfName, @pdfData)"
                Dim comm As New SqlClient.SqlCommand(sql, con)
                comm.Parameters.AddWithValue("@pdfName", IO.Path.GetFileName(op.FileName))
                comm.Parameters.AddWithValue("@pdfData", data)

                con.Open()
                comm.ExecuteNonQuery()
                con.Close()

                ListBoxFill() ' إعادة تعبئة

            End If
        End Using

    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        ' إذا لم يحدد ملف يخرج من الأمر
        If Me.ListBox1.SelectedValue Is Nothing Then Exit Sub

        Dim sql As String = "SELECT [pdfName],[pdfData] FROM [Table1] WHERE [id] = " & Me.ListBox1.SelectedValue

        Using da As New SqlClient.SqlDataAdapter(sql, con)
            Using dt As New DataTable

                If da.Fill(dt) > 0 Then

                    Dim row As DataRow = dt.Rows(0)

                    Dim tmpPath As String = IO.Path.GetTempPath
                    Dim fileName As String = tmpPath & "\" & row("pdfName")

                    IO.File.WriteAllBytes(fileName, row("pdfData"))

                    Process.Start(fileName) ' فتح الملف بواسطة البرنامج الإفتراضي له

                End If

            End Using
        End Using

    End Sub

End Class

.....
الرد
تم الشكر بواسطة: abid , السندبااد , محمد بن عطية
#5
حياك الله وابقاك وجزاك الله خير الجزاء والله معارف كيف اشكرك بس اقولك نسأل الله ان ييسرلك امرك انت واخانا سعود
الرد
تم الشكر بواسطة:
#6
(21-07-14, 01:40 AM)abid كتب : حياك الله وابقاك وجزاك الله خير الجزاء والله معارف كيف اشكرك بس اقولك نسأل الله ان ييسرلك امرك انت واخانا سعود

انا لم يتنفذ عندي  Huh
الرد
تم الشكر بواسطة:
#7
(19-07-14, 11:17 AM)vbnet كتب : .....

لحفظ ملفات مثل PDF أو حتى exe يمكن حفظها في قاعدة البيانات في صورة بايناري ()Byte ثم عند قراءتها يتم تحويلها إلى ملف ومن ثم تشغيلها إذا أردنا ذلك

هذا مثال لحفظ ملفات PDF وعرض أسماءها في ListBox ومنها يتم الاختيار وتشغبله بواسطة البرنامج الإفتراضي له والذي غالباً هو AcrobatReader

أولا إعمل جدول في قاعدة البيانات SQLServer سواء في tempdb أو أي اسم آخر وذلك كالتالي
table1 : إسم الجدول
id : ترقيم تلقائي من نوع INT
pdfName : إسم الملف من نوع NVARCHAR بطول حوالي 200 أو أكثر
pdfData : بيانات الملف الرقمية من نوع IMAGE حيث أن Image هو عبارة عن بيانات رقمية ولذلك سنستغله في هذه المهمة

أضف في الفورم
ListBox1 لعرض أسماء الملفات المخزنة في قاعدة البيانات
Button1 لإضافة ملف PDF إلى قاعدة البيانات
Button2 لعرض الملف المحدد في ListBox1 بواسطة البرنامج الإفتراضي له
كود :
Public Class Form1

   Dim con As New SqlClient.SqlConnection("Data Source=.\SQLEXPRESS; Initial Catalog=tempdb; Integrated Security=True")

   ' إعمل التالي في قاعدة البيانات
   ' Table:   الجدول
   '   table1
   ' Columns: الأعمدة
   '   id       INT IDENTITY
   '   pdfName  NVARCHAR(200)  ' إسم الملف
   '   pdfData  IMAGE           ' لأن الصورة بايناري فسنستغلها لبيانات الملف


   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       ListBoxFill() ' تعبئة
   End Sub

   Private Sub ListBoxFill()
       Using da As New SqlClient.SqlDataAdapter(" SELECT id, pdfName FROM [table1] ", con)
           Dim dt As New DataTable
           da.Fill(dt)
           Me.ListBox1.DataSource = dt
           Me.ListBox1.ValueMember = "id"
           Me.ListBox1.DisplayMember = "pdfName"
       End Using
   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

       Using op As New OpenFileDialog
           op.Filter = "PDF files (*.pdf)|*.pdf"
           If op.ShowDialog = Windows.Forms.DialogResult.OK Then
               Dim data As Byte() = IO.File.ReadAllBytes(op.FileName)

               Dim sql As String = "INSERT INTO [Table1] (pdfName, pdfData) VALUES(@pdfName, @pdfData)"
               Dim comm As New SqlClient.SqlCommand(sql, con)
               comm.Parameters.AddWithValue("@pdfName", IO.Path.GetFileName(op.FileName))
               comm.Parameters.AddWithValue("@pdfData", data)

               con.Open()
               comm.ExecuteNonQuery()
               con.Close()

               ListBoxFill() ' إعادة تعبئة

           End If
       End Using

   End Sub


   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

       ' إذا لم يحدد ملف يخرج من الأمر
       If Me.ListBox1.SelectedValue Is Nothing Then Exit Sub

       Dim sql As String = "SELECT [pdfName],[pdfData] FROM [Table1] WHERE [id] = " & Me.ListBox1.SelectedValue

       Using da As New SqlClient.SqlDataAdapter(sql, con)
           Using dt As New DataTable

               If da.Fill(dt) > 0 Then

                   Dim row As DataRow = dt.Rows(0)

                   Dim tmpPath As String = IO.Path.GetTempPath
                   Dim fileName As String = tmpPath & "\" & row("pdfName")

                   IO.File.WriteAllBytes(fileName, row("pdfData"))

                   Process.Start(fileName) ' فتح الملف بواسطة البرنامج الإفتراضي له

               End If

           End Using
       End Using

   End Sub

End Class

.....

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Information [سؤال] انشاء قاعدة بيانات access واضافة جدول وحقول بكود vb.net fefooo29 4 3,363 10-06-19, 09:31 PM
آخر رد: sherf
  مساعدة في تصميم قاعدة بيانات ادارة ساعات عمل الموظفين Rabeea Qbaha 6 107 06-06-19, 12:23 AM
آخر رد: elgokr
  استدعاء بيانات من اكثر من جدول المتألق9 1 100 04-06-19, 10:29 PM
آخر رد: احمد نعمة السلامي
  [VB.NET] رسالة خطأ عند الحذف أو تعديل بيانات جديدة #concurrency violation# sniperjawadino 11 443 28-05-19, 10:50 PM
آخر رد: sniperjawadino
  قاعدة البيانات بتقفل كل شوية احمد خطاب 5 221 11-05-19, 04:24 AM
آخر رد: احمد خطاب
  [VB.NET] قاعدة بيانات postgress tarek 2 206 06-04-19, 09:07 PM
آخر رد: elgokr
  الاتصال بقاعدة بيانات mdf موجودة على القرص نور الهدى الهدى 10 531 18-03-19, 08:55 PM
آخر رد: 5000
  [SQL] مشكلة في ربط قاعدة البيانات SQLSERVER2014 بـ فيجول بيسك 2017 اباذر 4 263 16-03-19, 12:00 AM
آخر رد: اباذر
  طريقة ادخال اعداد تحتوي على فاصلة في قاعدة البيانات segma 21 630 12-03-19, 10:23 PM
آخر رد: segma
  [VB.NET] البحث عن مسار مجلد ضمن قاعدة البيانات اكسس وفتحه من الفورم EMADSSS 1 208 21-02-19, 04:38 PM
آخر رد: elgokr

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


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