تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] جربت كل الحلول المقترحة لتحديث Datagridview
#1
السَّلَامُ عَلَيْكُمْ وَرَحْمَةُ اللَّهِ وَبَرَكَاتُهُ 

وجدت حلولا لجميع سؤالاتي السابقة بارك الله فيكم

الان حصل لي مشكل  لا يتم تحديث البيانات في Datagridview في الفورم الثاني (FRM_EXAM) بعد اضافة  فحص جديد حتى اخرج و اعاود الدخول الى الفورم

(ملاحظة: يتم التحديث عادي. في الفورم الاول Patients_List بعد الاضافة بشكل عادي)

كيف الحل ؟ جزاكم الله خيرا


الملفات المرفقة
.rar   PATIENTS1__1.rar (الحجم : 132.7 ك ب / التحميلات : 41)
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته :

تم تعديل بعض الأكواد في بعض النوافذ ،، ولكن من أجل السرعة نسخت كل الاكواد التي في النافذة 
لذا عليك نسخ كامل الكود واستبداله بالكود الذي لديك في نفس النافذة ..
الاكواد تخص ثلاثة نوافذ ..

الأكواد في Form1 :

كود :
Imports System.Data.OleDb
Imports System.Data.SqlClient
Public Class Patients_LIST

   Dim ConStr As String = ("Provider=Microsoft.jet.oledb.4.0;" & "Data source =" & Application.StartupPath & "\MyData.mdb")
   Dim Conn As New OleDbConnection(ConStr)
   Dim SQLStr As String = "SELECT * From Table1"
   Public DataAdapter1 As OleDbDataAdapter
   Public Dt As New DataTable

   Sub fillDGV()

       Dt.Rows.Clear()
       DataAdapter1 = New OleDbDataAdapter(SQLStr, Conn)
       DataAdapter1.Fill(Dt)

       Me.dgvStudents.DataSource = Dt


   End Sub


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

   Private Sub txtSearch_TextChanged(sender As Object, e As EventArgs) Handles txtSearch.TextChanged

       Try

           Dim Dtcopy As DataTable = Dt.Copy

           Dim dv As DataView = Dtcopy.DefaultView

           dv.RowFilter = "ID+Nom+Prenom+Adresse+Tel like '%" & txtSearch.Text & "%'"

           dgvStudents.DataSource = dv
       Catch ex As Exception
           Exit Sub
       End Try

   End Sub

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

       ' Dim frm As New FRM_ADD_PATIENT

       FRM_ADD_PATIENT.ToDo = "add"
       FRM_ADD_PATIENT.Text = "Ajouter nouveau malade"
       FRM_ADD_PATIENT.Button1.Text = "Ajouter"
       FRM_ADD_PATIENT.Show()

   End Sub

   Private Function DataUpdate() As Boolean
       Try
           Me.BindingContext(Dt).EndCurrentEdit()
           Dim save As New OleDbCommandBuilder(DataAdapter1)
           DataAdapter1.Update(Dt)
           Dt.AcceptChanges()
           Return True
       Catch ex As Exception
           MsgBox(ex.Message)
           Return False
       End Try
   End Function

   Private Sub btnEdit_Click(sender As Object, e As EventArgs) Handles btnEdit.Click
       Try
           '  Dim frm As New FRM_ADD_PATIENT

           FRM_ADD_PATIENT.ToDo = "edit"

           FRM_ADD_PATIENT.Text = "Modifier le dossier de: " & dgvStudents.CurrentRow.Cells(1).Value
           FRM_ADD_PATIENT.Button1.Text = "Modifier"

           FRM_ADD_PATIENT.Id_Patient = dgvStudents.CurrentRow.Cells(0).Value

           FRM_ADD_PATIENT.TextBox1.Text = dgvStudents.CurrentRow.Cells(1).Value
           FRM_ADD_PATIENT.TextBox2.Text = dgvStudents.CurrentRow.Cells(2).Value
           FRM_ADD_PATIENT.TextBox3.Text = dgvStudents.CurrentRow.Cells(3).Value
           FRM_ADD_PATIENT.TextBox4.Text = dgvStudents.CurrentRow.Cells(4).Value
           FRM_ADD_PATIENT.TextBox5.Text = dgvStudents.CurrentRow.Cells(5).Value
           FRM_ADD_PATIENT.ComboBox1.Text = dgvStudents.CurrentRow.Cells(6).Value
           FRM_ADD_PATIENT.DateTimePicker1.Value = dgvStudents.CurrentRow.Cells(7).Value
           FRM_ADD_PATIENT.TextBox6.Text = dgvStudents.CurrentRow.Cells(8).Value


           FRM_ADD_PATIENT.Show()

           fillDGV()
       Catch ex As Exception
           Exit Sub
       End Try


   End Sub

   Private Sub btnDelete_Click(sender As Object, e As EventArgs) Handles btnDelete.Click
       Try
           cmd = New OleDbCommand("Delete from Table1 where ID=" & dgvStudents.CurrentRow.Cells(0).Value, con)

           con.Open()

           cmd.ExecuteNonQuery()

           con.Close()

           MsgBox("Dossier supprimé", MsgBoxStyle.Information, "Supprimer")
           fillDGV()
       Catch ex As Exception
           Exit Sub
       End Try
   End Sub

   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       Try
           'Dim frm As New FRM_EXAM

           FRM_EXAM.ToDo = "edit"

           FRM_EXAM.Text = "Le dossier de: " & dgvStudents.CurrentRow.Cells(1).Value

           FRM_EXAM.Id_Patient = dgvStudents.CurrentRow.Cells(0).Value

           FRM_EXAM.TextBox7.Text = dgvStudents.CurrentRow.Cells(0).Value
           FRM_EXAM.TextBox1.Text = dgvStudents.CurrentRow.Cells(1).Value
           FRM_EXAM.TextBox2.Text = dgvStudents.CurrentRow.Cells(2).Value
           FRM_EXAM.TextBox3.Text = dgvStudents.CurrentRow.Cells(3).Value
           FRM_EXAM.TextBox4.Text = dgvStudents.CurrentRow.Cells(4).Value
           FRM_EXAM.TextBox5.Text = dgvStudents.CurrentRow.Cells(5).Value
           FRM_EXAM.ComboBox1.Text = dgvStudents.CurrentRow.Cells(6).Value
           FRM_EXAM.DateTimePicker1.Value = dgvStudents.CurrentRow.Cells(7).Value
           FRM_EXAM.TextBox6.Text = dgvStudents.CurrentRow.Cells(8).Value


           FRM_EXAM.Show()

           '  fillDGV()
       Catch ex As Exception
           Exit Sub
       End Try
   End Sub
End Class


الأكواد في FRM_EXAM : 
كود :
Imports System.Data.OleDb
Imports System.Data.SqlClient
Public Class FRM_EXAM
   Dim ConStr As String = ("Provider=Microsoft.jet.oledb.4.0;" & "Data source =" & Application.StartupPath & "\MyData.mdb")
   Dim Conn As New OleDbConnection(ConStr)
   Dim SQLStr As String = "SELECT * From TBL_Exam"
   Public DataAdapter1 As OleDbDataAdapter
   Public Dt As New DataTable
   Public ToDo As String = "add"
   Public Id_Patient As Integer

   Dim cmdb As OleDbCommandBuilder

   Sub FillDGV()

       Try
           Dim sql As String = "select * from TBL_EXAM where ID_Malade=" & TextBox7.Text


           con.Open()
           Dim adapt As New OleDb.OleDbDataAdapter(sql, Conn)
           Dim dt As New DataTable()
           adapt.Fill(dt)
           Me.dgvCourses.DataSource = dt

       Catch ex As Exception
           MsgBox(ex.Message)
       Finally
           con.Close()
       End Try
   End Sub

   Private Sub FRM_EXAM_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       'Dim query As String
       'If ToDo = "add" Then
       '    query = "INSERT INTO Table1  (Nom, Prenom, Age, Adresse, Tel, Groupage, DateConsult, atcd) values (@Nom, @Prenom, @Age, @Adresse, @Tel, @Groupage, @DateConsult, @atcd)"

       'Else
       '    query = "Update Table1 set Nom=@Nom, Prenom=@Prenom, Age=@Age, Adresse=@Adresse, Tel=@Tel, Groupage=@Groupage, DateConsult=@DateConsult, atcd=@atcd where ID=" & Id_Patient

       'End If

       FillDGV()
   End Sub

   Private Sub btnNEW_Click(sender As Object, e As EventArgs) Handles btnNEW.Click

       Try
           Dim frm As New FRM_ADD_EXAM
           frm.ToDo = "add"
           frm.Text = "Nouvelle Consultation"
           frm.Button1.Text = "AJOUTER"
           frm.Show()

           frm.Text = " Nouvelle Consultation "

           frm.TextBox8.Text = Me.TextBox7.Text

           FillDGV()

       Catch ex As Exception
           Exit Sub
       End Try



   End Sub

End Class


الأكواد في FRM_ADD_EXAM : 
كود :
Imports System.Data.OleDb
Imports System.Data.SqlClient

Public Class FRM_ADD_EXAM
   Dim ConStr As String = ("Provider=Microsoft.jet.oledb.4.0;" & "Data source =" & Application.StartupPath & "\MyData.mdb")
   Dim Conn As New OleDbConnection(ConStr)
   Dim SQLStr As String = "SELECT * From TBL_EXAM"
   Public DataAdapter1 As OleDbDataAdapter
   Public Dt As New DataTable
   Public ToDo As String = "add"
   Public Id_Patient As Integer

   Dim cmdb As OleDbCommandBuilder


   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Try
           Dim query As String
           If ToDo = "add" Then
               query = "INSERT INTO TBL_EXAM  (ID_Malade, TA, Gly, Temperature, Saturation, FC, Diagnostic, Ordonance, LastDate) values (@ID_Malade, @TA, @Gly, @Temperature, @Saturation, @FC, @Diagnostic, @Ordonance, @LastDate)"

           Else
               query = "Update TBL_EXAM set ID_Malade=@ID_Malade, TA=@TA, Gly=@Gly, Temperature=@Temperature, Saturation=@Saturation, FC=@FC, Diagnostic=@Diagnostic, Ordonance=@Ordonance, LastDate=@LastDate where ID=" & Id_Patient

           End If


           cmd = New OleDb.OleDbCommand(query, con)

           cmd.Parameters.Add(New OleDb.OleDbParameter("@ID_Malade", OleDb.OleDbType.VarChar)).Value = TextBox8.Text
           cmd.Parameters.Add(New OleDb.OleDbParameter("@TA", OleDb.OleDbType.VarChar)).Value = TextBox1.Text
           cmd.Parameters.Add(New OleDb.OleDbParameter("@Gly", OleDb.OleDbType.VarChar)).Value = TextBox2.Text
           cmd.Parameters.Add(New OleDb.OleDbParameter("@Temperature", OleDb.OleDbType.VarChar)).Value = TextBox3.Text
           cmd.Parameters.Add(New OleDb.OleDbParameter("@Saturation", OleDb.OleDbType.VarChar)).Value = TextBox4.Text
           cmd.Parameters.Add(New OleDb.OleDbParameter("@FC", OleDb.OleDbType.VarChar)).Value = TextBox5.Text
           cmd.Parameters.Add(New OleDb.OleDbParameter("@Diagnostic", OleDb.OleDbType.VarChar)).Value = TextBox6.Text
           cmd.Parameters.Add(New OleDb.OleDbParameter("@Ordonance", OleDb.OleDbType.VarChar)).Value = TextBox7.Text

           cmd.Parameters.Add(New OleDb.OleDbParameter("@LastDate", OleDb.OleDbType.Date)).Value = DateTimePicker1.Value.Date

           con.Open()

           cmd.ExecuteNonQuery()

           MsgBox("Succés", MsgBoxStyle.Information, "Dossier")
           Me.Hide()



       Catch ex As Exception
           MsgBox(ex.Message)
       Finally
           con.Close()
       End Try

       FRM_EXAM.FillDGV()

   End Sub

   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       Close()
   End Sub

End Class




للتبسيط ، المشكلة كانت أنك تستخدم نسخة من النافذة وليست النافذة نفسها
لذا عدلت الكود وقمت بإلغاء بعض الأكواد التي لا فائدة منها

ويحتاج الكثير من التعديلات ولكن ليس لدي الوقت الكافي للتعديل على المشروع أكثر..
وبات الان بإمكانك استكمال مشروعك ..
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: asmarsou
#3
أحسن الله إليك
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] محتاج اربط DataGridView بزر بحث bakrycold 1 548 28-02-25, 12:11 AM
آخر رد: bakrycold
  [VB.NET] استعراض بيانات في Datagridview واضافة جميع البيانات لجدول محدد sql skode 0 486 12-01-25, 12:50 AM
آخر رد: skode
Information [VB.NET] تنسيق أعمدة DataGridView أبو خالد الشكري 3 566 21-12-24, 02:40 PM
آخر رد: aljzazy
Exclamation [VB.NET] اريد كود لتصدير البيانات من DataGridView الى ملف Excel zazasami 1 491 04-08-24, 09:15 PM
آخر رد: mrfenix93
  تعديل بيانات عمود DataGridView دفعة واحدة مصمم هاوي 2 683 05-03-24, 08:27 PM
آخر رد: مصمم هاوي
  فلترة datagridview بدون قاعدة بيانات صالح عبدالله 3 679 02-02-24, 04:07 PM
آخر رد: صالح عبدالله
  [VB.NET] ظهور التاريخ غير مرتب بالأقدم في datagridview مبرمج صغير 1 4 852 26-01-24, 03:41 PM
آخر رد: atefkhalf2004
  [VB.NET] التاريخ في أداة أبو سامر لطباعة DataGridView مبرمج صغير 1 17 1,501 26-01-24, 01:52 AM
آخر رد: مبرمج صغير 1
Photo [كود] مطلوب كود يستخدم الأوامر فقط لتحديث قاعدة بيانات بـ vb.net AhmedEissa 4 980 18-01-24, 11:40 PM
آخر رد: العتيق
  مشكلة في datagridview Adata 4 705 17-01-24, 03:00 PM
آخر رد: aljzazy

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


يقوم بقرائة الموضوع: