منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : طلب تعديل كود جلب اسم الملف ومساره
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمـة الله وبركاته
أعذروني أثقل عليكم أسلئتي
أولاً: أريد التعديل على كود جلب اسم الملف ومساره في التكستات
أتعبني هذا الكود على الرغم من تقسيمه إلى صب 2
ولكن هذا غير مجدي وغير عملي

كود :
[code]

   Private Sub ButSearsh_Click(sender As Object, e As EventArgs) Handles ButSearsh.Click
       FilePath()
       FileNames()

   End Sub

   Private Sub FileNames()
       ' جلب اسم الملف في التكست
       Using ofb As New OpenFileDialog
           ofb.InitialDirectory = ""
           ofb.Multiselect = True

           If ofb.ShowDialog() = DialogResult.OK Then
               For i As Integer = 0 To ofb.FileNames.Count - 1
                   Dim FullName As String = ofb.FileNames(i)
                   Dim OnlyFileName As String = IO.Path.GetFileNameWithoutExtension(FullName)
                   TextName.Text = (OnlyFileName)

               Next
           End If

       End Using

   End Sub

   Private Sub FilePath()
       ' جلب مسار الملف في التكست
       ofd.Filter = "All Files (*.*) |*.*"
       If ofd.ShowDialog = DialogResult.OK Then
           TextPath.Text = ofd.FileName

       End If

   End Sub
[/code]

ثانياً: يتم حفظ الملفات في قاعدة البيانات؛ ولكن أريد حفظ الملفات في مجلد (MyFile) الموجود في مجلد  (Debug) وحفظ المسار فقط في قاعدة البيانات

المثال في المرفقات
ملحوظة: اسم قاعدة البيانات  Maylibrary
اسم الجدول  Tab_Files
أسماء حقول الجدول في ملف المثال باسم Maylibrary

[attachment=30010]
الحمد لله تم حل إشكالية السؤال الأول. وبقي السؤال الثاني عن طريقة حفظ رابط الملف فقط في الجدول و ادراج الملف في مجلد.
انتظر إجابة الطلب الثاني
و عليكم السلام و رحمة الله و بركاته 

بحسب ما فهمت من سؤالك

يمكن تحسين الكود لجعل عملية اختيار الملفات وجلب أسمائها ومساراتها أكثر كفاءة وعملية. سأقوم أيضًا بإضافة جزء من الكود الذي يحفظ الملفات في مجلد MyFile الموجود داخل مجلد Debug مع حفظ المسار فقط في قاعدة البيانات.

الكود المحسّن:

PHP كود :
Imports System.IO
Imports System
.Data.SqlClient

Public Class Form1
    
' تعريف كائن OpenFileDialog
    Private ofd As New OpenFileDialog()

    Private Sub ButSearsh_Click(sender As Object, e As EventArgs) Handles ButSearsh.Click
        ' 
استدعاء طريقة اختيار الملفات
        SelectAndProcessFiles
()
 
   End Sub

    Private Sub SelectAndProcessFiles
()
 
       ' إعداد الخصائص الأساسية لنافذة اختيار الملفات
        ofd.Filter = "All Files (*.*)|*.*"
        ofd.Multiselect = True
        ofd.InitialDirectory = ""

        ' 
فتح نافذة اختيار الملفات
        If ofd
.ShowDialog() = DialogResult.OK Then
            For Each filePath 
As String In ofd.FileNames
                
' استخراج اسم الملف بدون الامتداد
                Dim fileName As String = Path.GetFileNameWithoutExtension(filePath)
                ' 
تحديد المسار الجديد لحفظ الملف في مجلد MyFile
                Dim newFilePath 
As String Path.Combine(Application.StartupPath"MyFile"Path.GetFileName(filePath))

 
               ' إنشاء المجلد إذا لم يكن موجودًا
                Dim directoryPath As String = Path.Combine(Application.StartupPath, "MyFile")
                If Not Directory.Exists(directoryPath) Then
                    Directory.CreateDirectory(directoryPath)
                End If

                ' 
نسخ الملف إلى المجلد الجديد
                File
.Copy(filePathnewFilePathTrue)

 
               ' تحديث الحقول النصية
                TextName.Text = fileName
                TextPath.Text = newFilePath

                ' 
حفظ المسار فقط في قاعدة البيانات
                SaveFilePathToDatabase
(newFilePath)
 
           Next
        End 
If
 
   End Sub

    Private Sub SaveFilePathToDatabase
(filePath As String)
 
       ' سلسلة الاتصال بقاعدة البيانات
        Dim connectionString As String = "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Maylibrary;Integrated Security=True"

        Using conn As New SqlConnection(connectionString)
            Try
                ' 
فتح الاتصال
                conn
.Open()

 
               ' استعلام إدخال المسار
                Dim query As String = "INSERT INTO Tab_Files (FilePath) VALUES (@FilePath)"
                Using cmd As New SqlCommand(query, conn)
                    cmd.Parameters.AddWithValue("@FilePath", filePath)
                    cmd.ExecuteNonQuery()
                End Using

            Catch ex As Exception
                MessageBox.Show("حدث خطأ أثناء حفظ المسار: " & ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        End Using
    End Sub
End Class 
(24-01-25, 07:04 PM)Kamil كتب : [ -> ]و عليكم السلام و رحمة الله و بركاته 

بحسب ما فهمت من سؤالك

يمكن تحسين الكود لجعل عملية اختيار الملفات وجلب أسمائها ومساراتها أكثر كفاءة وعملية. سأقوم أيضًا بإضافة جزء من الكود الذي يحفظ الملفات في مجلد MyFile الموجود داخل مجلد Debug مع حفظ المسار فقط في قاعدة البيانات.

الكود المحسّن:

PHP كود :
Imports System.IO
Imports System
.Data.SqlClient

Public Class Form1
    
' تعريف كائن OpenFileDialog
    Private ofd As New OpenFileDialog()

    Private Sub ButSearsh_Click(sender As Object, e As EventArgs) Handles ButSearsh.Click
        ' 
استدعاء طريقة اختيار الملفات
        SelectAndProcessFiles
()
 
   End Sub

    Private Sub SelectAndProcessFiles
()
 
       ' إعداد الخصائص الأساسية لنافذة اختيار الملفات
        ofd.Filter = "All Files (*.*)|*.*"
        ofd.Multiselect = True
        ofd.InitialDirectory = ""

        ' 
فتح نافذة اختيار الملفات
        If ofd
.ShowDialog() = DialogResult.OK Then
            For Each filePath 
As String In ofd.FileNames
                
' استخراج اسم الملف بدون الامتداد
                Dim fileName As String = Path.GetFileNameWithoutExtension(filePath)
                ' 
تحديد المسار الجديد لحفظ الملف في مجلد MyFile
                Dim newFilePath 
As String Path.Combine(Application.StartupPath"MyFile"Path.GetFileName(filePath))

 
               ' إنشاء المجلد إذا لم يكن موجودًا
                Dim directoryPath As String = Path.Combine(Application.StartupPath, "MyFile")
                If Not Directory.Exists(directoryPath) Then
                    Directory.CreateDirectory(directoryPath)
                End If

                ' 
نسخ الملف إلى المجلد الجديد
                File
.Copy(filePathnewFilePathTrue)

 
               ' تحديث الحقول النصية
                TextName.Text = fileName
                TextPath.Text = newFilePath

                ' 
حفظ المسار فقط في قاعدة البيانات
                SaveFilePathToDatabase
(newFilePath)
 
           Next
        End 
If
 
   End Sub

    Private Sub SaveFilePathToDatabase
(filePath As String)
 
       ' سلسلة الاتصال بقاعدة البيانات
        Dim connectionString As String = "Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=Maylibrary;Integrated Security=True"

        Using conn As New SqlConnection(connectionString)
            Try
                ' 
فتح الاتصال
                conn
.Open()

 
               ' استعلام إدخال المسار
                Dim query As String = "INSERT INTO Tab_Files (FilePath) VALUES (@FilePath)"
                Using cmd As New SqlCommand(query, conn)
                    cmd.Parameters.AddWithValue("@FilePath", filePath)
                    cmd.ExecuteNonQuery()
                End Using

            Catch ex As Exception
                MessageBox.Show("حدث خطأ أثناء حفظ المسار: " & ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        End Using
    End Sub
End Class 

بارك الله فيك وجزاك كل خير على الكود الرائع، فقد تم الاستفادة منه بعد إضافة بعض التعديلات ليتلاءم مع مشروعي