تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] خطأ في التنفيذ الكود بعد فلترة dataGridView
#1
السلام عليكم ورحمة الله وبركاته
أخواني الاعزاء من الصباح وانا في عراااك وجهاد مع طريقة الوقوف على الصف المختار بعد فلترة dataGridView وفتح الملف الصحيح الذي تم اختياره والوقوف عليه
هذا السورس كود تم عمله من قبل الاستاذ [b]elgokr[/b]

http://vb4arb.com/vb/showthread.php?tid=28906
فما الحل؟

كود :
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
لا إله إلا الله وحده لا شريك له، لهُ الملك وله الحمد وهو على كل شئ قدير،،،،
سبحان الله وبحمده سبحان الله العظيم Heart
الرد }}}
تم الشكر بواسطة: بلدي
#2
السلام عليكم ورحمة الله وبركاته

اخي محمد انت لم توضح ماهي المشكلة التي تعاني منها في المثال حتى يتم الرد عن تساؤلك
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}
تم الشكر بواسطة: محمد العامر
#3
اخي ابراهيم بارك الله المشكله انه اذا تم عمل فلتر او تصفيه للبيانات في الداتا جريد فيو يتم استعراض العناصر "الملفات" التي في الصف رقم 1 &2 &3 بمعنى الصفوف الاوليه فقط اي انه لا يتم تغيير رقم الصف وجلب البيانات او الملفات التي ترتبط بقيمه البحث
لا إله إلا الله وحده لا شريك له، لهُ الملك وله الحمد وهو على كل شئ قدير،،،،
سبحان الله وبحمده سبحان الله العظيم Heart
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تعديل بيانات عمود DataGridView دفعة واحدة مصمم هاوي 2 194 05-03-24, 08:27 PM
آخر رد: مصمم هاوي
  ممكن حل المشكلة فى الكود التالي - من مشاركة استاذنا القدير / عبدالله الدوسري new_programer 4 176 02-03-24, 07:36 PM
آخر رد: new_programer
  ماهو حل هذا الخطأ في الكود melad2002 7 275 25-02-24, 12:25 AM
آخر رد: justforit
  كيفية انشاء سكريبت لقاعدة بيانات من خلال الكود heem1986 1 212 20-02-24, 12:00 AM
آخر رد: Kamil
  فلترة datagridview بدون قاعدة بيانات صالح عبدالله 3 314 02-02-24, 04:07 PM
آخر رد: صالح عبدالله
  [VB.NET] ظهور التاريخ غير مرتب بالأقدم في datagridview مبرمج صغير 1 4 307 26-01-24, 03:41 PM
آخر رد: atefkhalf2004
  [VB.NET] التاريخ في أداة أبو سامر لطباعة DataGridView مبرمج صغير 1 17 657 26-01-24, 01:52 AM
آخر رد: مبرمج صغير 1
  [VB.NET] أرغب فى استخدام هذا الكود بالتحديد على الإصدار 10 AmeenRashed 3 210 19-01-24, 12:42 PM
آخر رد: Taha Okla
  مشكلة في datagridview Adata 4 316 17-01-24, 03:00 PM
آخر رد: aljzazy
  [VB.NET] ما الخطأ فى هذا الكود - كود البحث المتعدد Ashraf Elafify 7 476 27-12-23, 10:50 PM
آخر رد: Ashraf Elafify

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


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