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

السلام عليكم شباب

عندى مشكله فى البحش بين جدولين يتم تكرار البيانات اذا كان بالجدولين صف واحد يتم استدعائه صف عادى لاكن اذا كان صفين يتك استدعائه اربع مرات يعنى يتم تكراره مرتين كمان

هذا هو كود البحث
PHP كود :
Using DataAdapter1 As New SqlDataAdapter("SELECT * FROM [hagz1],[hagz2] WHERE [studntname] = @name "con)
            
DataAdapter1.SelectCommand.Parameters.AddWithValue("@name"txt.Text)
            
Using DataTable As New DataTable
                DataAdapter1
.Fill(DataTable)
                
DataGridView1.DataSource DataTable
            End Using
        End Using

        DataGridView1
.Columns(0).Visible False
        DataGridView1
.Columns(1).Visible True
        DataGridView1
.Columns(2).Visible False
        DataGridView1
.Columns(3).Visible False
        DataGridView1
.Columns(4).Visible True
        DataGridView1
.Columns(5).Visible False
        DataGridView1
.Columns(6).Visible False
        DataGridView1
.Columns(7).Visible False
        DataGridView1
.Columns(8).Visible False
        DataGridView1
.Columns(9).Visible True
        DataGridView1
.Columns(10).Visible True
        DataGridView1
.Columns(11).Visible True
        DataGridView1
.Columns(12).Visible True
        DataGridView1
.Columns(13).Visible True

        
'''''''''''''''''''''
        DataGridView1.Columns(1).Width = 100
        DataGridView1.Columns(4).Width = 100
        DataGridView1.Columns(9).Width = 140
        DataGridView1.Columns(10).Width = 105
        DataGridView1.Columns(11).Width = 140
        DataGridView1.Columns(12).Width = 105
        DataGridView1.Columns(13).Width = 135
        ''''''''''''''''''''''''''''''''''''''''''''''''

        DataGridView1.Columns(1).HeaderText = "اسم المدرس"
        DataGridView1.Columns(4).HeaderText = "اسم المزكرة"
        DataGridView1.Columns(9).HeaderText = "اسم الطالب"
        DataGridView1.Columns(10).HeaderText = "دفع"
        DataGridView1.Columns(11).HeaderText = "تاريخ الدفع"
        DataGridView1.Columns(12).HeaderText = "استلام"
        DataGridView1.Columns(13).HeaderText = "تاريخ الاستلام"
        '''''''''''''''''
        
DataGridView1.ColumnHeadersDefaultCellStyle.Alignment DataGridViewContentAlignment.MiddleCenter
        DataGridView1
.MultiSelect False
        With Me
.DataGridView1
            
.RowsDefaultCellStyle.BackColor Color.White
            
.AlternatingRowsDefaultCellStyle.BackColor Color.White
            
.RowsDefaultCellStyle.ForeColor Color.Black
            
.AlternatingRowsDefaultCellStyle.ForeColor Color.Black
        End With 
يارب اذا اعطيتني علما...اعطني معه حكمه...واذا اعطيتني مالا....اعطيني معها كرما...واذا اعطيتني قوه...اعطني معها رحمه...واذا اعطيتني سلطه...اعطني معها عدلا...واذا اعطيتني مسئوليه...اعطيني معها امانه...واذا اعطيتني نجاحا...اعطني معها تواضعا...اللهم امين
الرد }}}}
تم الشكر بواسطة:
#2
Using DataAdapter1 As New SqlDataAdapter("SELECT * FROM [hagz1],[hagz2] WHERE [studntname] = @name ", con)
يجب وجود علاقة بين الجدولين اى حقل رقم الطالب ويكون موجدو فى الجدولين مثل جدول الطلبة والنتائج
select * from student,result
where student.nostudent=result.nostudent
من اعمالنا نخطى ومن اخطائنا نتعلم ولاشى مستحيل
الرد }}}}
تم الشكر بواسطة:
#3
اخى الكريم شكرا لاكن لم تحل المشكلة المشكلة وهى ان انا باقوم بالبحث عن الاسم داخل الجدول الثانى وبناء عليه يقوم بئحضار البيانات انا ماليش دخل بالرقم كل الى انا محتاجو انو يظهرلى بيانات الاسم من الجدولين
يارب اذا اعطيتني علما...اعطني معه حكمه...واذا اعطيتني مالا....اعطيني معها كرما...واذا اعطيتني قوه...اعطني معها رحمه...واذا اعطيتني سلطه...اعطني معها عدلا...واذا اعطيتني مسئوليه...اعطيني معها امانه...واذا اعطيتني نجاحا...اعطني معها تواضعا...اللهم امين
الرد }}}}
تم الشكر بواسطة:
#4
أرسل لنا المشروع أو مثال صغير للتعديل عليه وشكرا.
الرد }}}}
تم الشكر بواسطة:
#5
يمكنك أن تقرأ البيانات الخاصة بالعمود االموجود به الاسماء لا غير و تحوله الي مصفوفة


PHP كود :
' تعريف الجدول
        Dim dt As DataTable
        ' 
تعريف اسم العمود المراد استرجاع بياناته
        Dim columnName 
As String "إسم العمود المراد استرجاع بياناته"

 
       ' الحصول علي مصفوفة هذا العمود
        Dim names = dt.AsEnumerable().Select(Function(r) r.Field(Of String)(columnName)).ToArray()

        ' 
يمكنك استخدام الهاش ست لضمان عدم تكرار المدخلات
        Dim hash 
As HashSet(Of String) = New HashSet(Of String)()
 
       ' تعبئة الهاش 
        For Each name As String In names
            hash.Add(name)
        Next

        ' 
استخدم الهاش في تعبئة الكومبوبوكس

        For Each s 
As String In hash
            ComboBox1
.Items.Add(s)
 
       Next 


علي فكرة يمكنك استخدام نفس الاسلوب مع كل عمود موجود في Table الأصلي ثم تبني DataTable جديد و تضيف له بيانات مصفوفة كل عمود علي هيئة عمود جديد و بهذا تكون تخلصت من التكرار
الرد }}}}
تم الشكر بواسطة:
#6
اخى الكريم silverlight اولا شكرا لك ثانيا
وانا اسف دائما ردودك صعبة الفهم اخى انا لسه باول الطريق ما افهم الكلام الكبير ده
وانا اسف تانى مره ممكن تفهمنى ايه المعنى وايه الفكرة
يارب اذا اعطيتني علما...اعطني معه حكمه...واذا اعطيتني مالا....اعطيني معها كرما...واذا اعطيتني قوه...اعطني معها رحمه...واذا اعطيتني سلطه...اعطني معها عدلا...واذا اعطيتني مسئوليه...اعطيني معها امانه...واذا اعطيتني نجاحا...اعطني معها تواضعا...اللهم امين
الرد }}}}
تم الشكر بواسطة:
#7
السلام عليكم...

عندما تستخدم جملة استعلام بهذا الشكل:
كود :
SELECT * FROM [hagz1],[hagz2] WHERE [studntname] = @name

دون تحديد علاقة بين الجدولين، فأنت تلقائياً تنشئ علاقة من النوع Cross Join أي علاقة تقاطع بين الجدولين حيث يتم ربط كل سجل من الجدول الأول بجميع السجلات من الجدول الثاني (لأن محرك قواعد البيانات في هذه الحالة لا يعرف كيف يربط بين السجلات). عدد السجلات الناتجة سيكون حاصل ضرب عدد السجلات المسترجعة من الجدولين. فإذا مثلاً أعاد الاستعلام سجلين من الجدول الأول و ثلاثة سجلات من الجدول الثاني فإن الناتج سيكون ستة سجلات (2 × 3).

للحصول على سجل واحد (أو سجلات مترابطة) من الجدولين يجب بناء علاقة ربط (Join) بينهما. نفرض أن ما يربط الجدولين هو رقم الطالب (الحقل student_id) الموجود في كلا الجدولين:


كود :
SELECT * FROM hagz1
INNER JOIN hagz2 ON hagz1.student_id = hagz2.student_id
WHERE studntname = @name

موضوع علاقات الربط موسع قليلاً، و لكن أساسياته متشابهة في كل قواعد البيانات.

نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}}
تم الشكر بواسطة:
#8
اخى الكريم ناجى ابراهيم نفس المشكلة يتم التكرار مع العلم اى اعمل على قاعدة بيانات sql server

هذا هو الكود

PHP كود :
Using DataAdapter1 As New SqlDataAdapter(" SELECT * FROM hagz1 INNER JOIN hagz2 ON hagz1.idtet = hagz2.idtet WHERE hagz2.studntname = @name "con)
            
DataAdapter1.SelectCommand.Parameters.AddWithValue("@name"txt.Text)
            
Using DataTable As New DataTable
                DataAdapter1
.Fill(DataTable)
                
DataGridView1.DataSource DataTable
            End Using
        End Using 
يارب اذا اعطيتني علما...اعطني معه حكمه...واذا اعطيتني مالا....اعطيني معها كرما...واذا اعطيتني قوه...اعطني معها رحمه...واذا اعطيتني سلطه...اعطني معها عدلا...واذا اعطيتني مسئوليه...اعطيني معها امانه...واذا اعطيتني نجاحا...اعطني معها تواضعا...اللهم امين
الرد }}}}
تم الشكر بواسطة:
#9
هل بمقدورك أخي العزيز أن تضع لنا تصميم الجدولين في قاعدة البيانات كصورة؟
الرد }}}}
تم الشكر بواسطة:
#10
جدول hagz1

   

جدول hagz2

   
يارب اذا اعطيتني علما...اعطني معه حكمه...واذا اعطيتني مالا....اعطيني معها كرما...واذا اعطيتني قوه...اعطني معها رحمه...واذا اعطيتني سلطه...اعطني معها عدلا...واذا اعطيتني مسئوليه...اعطيني معها امانه...واذا اعطيتني نجاحا...اعطني معها تواضعا...اللهم امين
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تغيير قاعدة البيانات الى .bak زيد زينوبي 3 34 منذ 6 ساعة مضت
آخر رد: ابراهيم النعيمي
  [سؤال] ايهما افضل في قواعد البيانات للتميم برنامج sal.softip 2 31 منذ 6 ساعة مضت
آخر رد: sal.softip
  قاعدة البيانات لا تدعم اللغة العربية ؟؟؟؟؟؟ صبري زينوبي 13 186 منذ 8 ساعة مضت
آخر رد: صبري زينوبي
  [VB.NET] كود البحث لا يظهر اي نتائج ولا اي اخطاء Asmaa adel 1 45 أمس, 09:41 AM
آخر رد: ابراهيم النعيمي
  حل مشكلة الكود الاتي - سهل- CLARO 3 70 02-12-16, 04:06 PM
آخر رد: ali.alfoly
  كيف يتم حل مشكلة ظهور رسالة عند الضغط علي هيد داتا جريد فيو السيد الجوهري 4 49 30-11-16, 10:08 PM
آخر رد: السيد الجوهري
  [كود] تعديل كود البحث بين تاريخينب hglogtd 2 37 29-11-16, 01:37 AM
آخر رد: hglogtd
  البحث مثل جوجل Samosoft 4 59 29-11-16, 01:35 AM
آخر رد: Samosoft
  خطأ عند البحث khalid475 1 44 28-11-16, 06:23 PM
آخر رد: khalid475
  [سؤال] كود البحث عن طريق اسم naden 1 68 28-11-16, 02:05 PM
آخر رد: Adrees

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


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