سؤال

أنا أحاول أن عرض DataGrid على تطبيق الهاتف المحمول الخاص بي بعد قراءة ملف كسف ومعالجتها.هنا هو ما لدي حتى الآن:

private void btOpenFile_Click(object sender, EventArgs e)
{
    try 
    {           
        // Process all data into an array of Object 
        // this.records array contains objects of type MyRecord

        // Create datatable and define columns
        DataTable dt = new DataTable("myDt");
        dt.Columns.Add( new DataColumn("String A",typeof(string)));
        dt.Columns.Add( new DataColumn("Int 1", typeof(int)));                   

        // Loop through and create rows
        foreach(MyRecord record in records) {
            DataRow row = dt.NewRow();                        
            row[0] = record.stringA;
            row[1] = record.int1;
            dt.Rows.Add(row);
        }   

        // Create dataset and assign it to the datasource..
        DataSet ds = new DataSet("myDs");
        ds.Tables.Add(dt);                                          
        dataGrid.DataSource = ds;
        dataGrid.Refresh();

    }
    catch (Exception ex)
    {
        MessageBox.Show("Error: " + ex.Message,"Error");
    }
}

كل ما أحصل عليه هو مكون شبكة بيانات فارغ عند تشغيل التطبيق الخاص بي.هل يمكن لشخص ما أن يشير إلى خطأي?أو كيفية القيام بذلك بشكل صحيح?

هل كانت مفيدة؟

المحلول

جرب بدون مجموعة بيانات داتاغريد.مصدر البيانات = دت;

نصائح أخرى

جرب هذا من شأنه أن يساعد...

DataSet Ds = new DataSet();
DataTable Dt = new DataTable();

Ds.Tables.Add(Dt);
Dt.Columns.Add(new DataColumn("String A", typeof(string)));                
Dt.Columns.Add(new DataColumn("Int 1", typeof(int)));      

Dt.Rows.Add(new object[] { "Patricia", 3 });
Dt.Rows.Add(new object[] { "John", 4 });
Dt.Rows.Add(new object[] { "Mayer", 5 });

بدلا من:

dataGrid.DataSource = ds;         
dataGrid.Refresh(); 

حاول:

dataGrid.SetDataBinding(ds, "myDt");

هذا له تأثير تعيين مصدر البيانات وعضو البيانات في نفس الوقت.

يجب أن تعمل كذلك إذا قمت بتعيين مصدر البيانات إلى الجدول داخل مجموعة البيانات كذلك ..شيء من هذا القبيل:

datagrid.DataSource = ds.Tables["myDt"];

تذكر أن مجموعة البيانات يمكن أن تحتوي على أكثر من جدول واحد وعلينا أن نقول ذلك صراحة أي واحد لاستخدام أو أن ننظر فيها :)

هث

المشكلة هي أنه لا يمكنك إحالة مصدر البيانات إلى مجموعة بيانات فقط يجب أن يكون شيئا مثل مجموعة البيانات.داتاتابل...هنا هو مثال

Dataset DS = new Dataset();
DS.Tables.Add(TableName);

//
Populate dataset
//

mydatagrid.Datasource = DS.Tables[0];

لذلك باختصار عليك الرجوع إلى الجدول داخل مجموعة البيانات لعرض البيانات...نأمل أن يساعد هذا...:)

وأنا أعلم في وقت متأخر جدا للإجابة....لكنها ستكون مفيدة للآخرين...

DataSet ds = gridUpdate.GridUpdate();

(لا تقلق بشأن غريدوبديت.غريدوبديت () وظيفتها لإنشاء مجموعة البيانات)

dataGridView1.DataSource = ds.Tables[0]
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top