تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[C#.NET] Child list for field TB1 cannot be created. خطا [solved]
#1
السلام عليكم 
اريد الانتقال من vb.net الى #C لتوسعة المعرفة 

لدي خطئ لم افهمة ومحتاج مساعدة 

انا استخدم هذا الكود لجلب البيانات الى datagridview مع نظام الصفحات 

كود ال VB.net :
PHP كود :
   Dim Filter As Integer
    Dim DataAdapter 
As OleDbDataAdapter
    Dim dt 
As DataTable = New DataTable
    Dim R_count 
As Integer
    Public Sub MASROFLOD
()
 
       Filter 0

        If Conn
.State ConnectionState.Closed Then
            Conn
.Open()
 
       End If

 
       SQLMSROF "SELECT * FROM TB1"

 
       DatasatMASROF.Clear()
 
       dt.Rows.Clear()
 
       DataAdapter = New OleDbDataAdapter(SQLMSROFConn)
 
       DataAdapter.Fill(DatasatMASROFFilter10"TB1")
 
       DataAdapter.Fill(dt)

 
       R_count dt.Rows.Count

        Conn
.Close()

 
       GV.DataSource DatasatMASROF
        GV
.DataMember "TB1"
 
       GV.Refresh()


 
       GV.Columns(0).Visible False
            GV
.Columns(1).HeaderText "المصروف"
 
           GV.Columns(2).HeaderText "المبلغ"
 
           GV.Columns(3).HeaderText "ملاحظة"
 
       GV.Columns(4).HeaderText "قام بصرف"
 
       GV.Columns(5).HeaderText "تاريخ الصرف"

 
   End Sub

    Private Sub prev_Click
(sender As ObjectAs EventArgsHandles prev.Click
        Filter 
Filter 10
        If Filter 
<= 0 Then
            Filter 
0
        End 
If
 
       DatasatMASROF.Clear()
 
       DataAdapter.Fill(DatasatMASROFFilter10"TB1")
 
   End Sub

    Private Sub nxt_Click
(sender As ObjectAs EventArgsHandles nxt.Click
        
' next button
        If (R_count - (Filter + 10)) <= 0 Then
            Return
        End If
        Filter = Filter + 10
        DatasatMASROF.Clear()
        DataAdapter.Fill(DatasatMASROF, Filter, 10, "TB1")
    End Sub 

قمت بتحويل الكود السابق والذي يعمل جيدا في بيئة vb.net الى #C 
وهذا هو الناتج :
PHP كود :
string query_1;
 
       DataSet ds = new DataSet();
 
       int Filter;
 
       OleDbDataAdapter DataAdapter;
 
       DataTable dt = new DataTable();
 
       int R_count;

 
       private void ShowGV()
 
       {
 
           Filter 0;

 
           if (con.con.State== ConnectionState.Closed)
 
           {
 
               con.con.Open();
 
           }

 
           query_1 "select * from TB1";

 
           ds.Clear();
 
           dt.Rows.Clear();

 
           DataAdapter = new OleDbDataAdapter(query_1 con.con);
 
           DataAdapter.Fill(dsFilter10"TB1");
 
           DataAdapter.Fill(dt);

 
           R_count dt.Rows.Count;
 
           con.con.Close();

 
           GV.DataSource dt;
 
           GV.DataMember "TB1";
 
           GV.Refresh();

 
           GV.Columns[0].Visible false;
 
           GV.Columns[1].HeaderText "الاسم";
 
           GV.Columns[2].HeaderText "العمر";
 
           GV.Columns[3].HeaderText "رقم الهاتف";
 
           GV.Columns[4].HeaderText "تاريخ الاضافة";

 
           GV.Columns[4].AutoSizeMode DataGridViewAutoSizeColumnMode.Fill;
 
       }
 
       private void button4_Click(object senderEventArgs e)
 
       {
 
           // Next button
 
           if ((R_count - (Filter 10)) <= 0)
 
           {
 
               return;
 
           }

 
           Filter Filter 10;
 
           ds.Clear();
 
           DataAdapter.Fill(dsFilter10"TB1");
 
       }

 
       private void button5_Click(object senderEventArgs e)
 
       {
 
           // previous button
 
           Filter Filter 10;
 
           if (Filter <= 0)
 
           {
 
               Filter 0;
 
           }
 
           ds.Clear();
 
           DataAdapter.Fill(dsFilter10"TB1");
 
       
لكن اواجة مشكلة في هذا السطر في كود ال #C : 
كود :
 GV.DataMember = "TB1";
والخطا هو : 
إقتباس :Additional information: Child list for field TB1 cannot be created.
هل من مساعدة وشكرا

الرد }}}
تم الشكر بواسطة:
#2
السلام عليكم
جرب احذف السطر

PHP كود :
           GV.DataMember "TB1"

الرد }}}
تم الشكر بواسطة: Rabeea Qbaha
#3
كيف حليت المشكلة؟

الرد }}}
تم الشكر بواسطة: Rabeea Qbaha
#4
فيه فرق كبير بين كود ال VB وكود C#

الفرق ان في الاول الداتا جريد تاخذ Data Source من DataSet اسمها DatasatMASROF

اما في الثانية يأخذ من Datatable اسمها dt

ولو اردت عملها من C# اعملها كالتالي

بدلا من 

كود :
GV.DataSource = dt;
           GV.DataMember = "TB1";


اكتب التالي


كود :
GV.DataSource = ds.Tables["TB1"];

 
         
الرد }}}
تم الشكر بواسطة: elgokr , Rabeea Qbaha
#5
قمت بحذف هذا السطر

PHP كود :
 GV.DataMember "TB1"

الرد }}}
تم الشكر بواسطة: elgokr , elgokr


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  صنع play list حاتمي 0 972 20-09-19, 11:17 PM
آخر رد: حاتمي
  اضافة Control فى List View بالكود نور الدين وليد 2 2,271 06-09-16, 12:59 PM
آخر رد: ahmedabdelaliem
  [C#.NET] List<int> أسامة 9 3,682 15-07-16, 06:31 AM
آخر رد: أسامة
  ما معنى List&lt;Class1&gt;؟؟ <br> 6 3,648 22-05-13, 12:37 AM
آخر رد: <br>

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


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