DataGridView Rows Пусто, когда установлено значение DataSet - PullRequest
1 голос
/ 10 января 2012

У меня проблемы с попыткой получить объект datagridviewrow из экземпляра набора данных, который я добавил программным способом.Я сделал это таким образом, чтобы использовать те же методы, что и мой другой конструктор, который работает из выбранной строки в представлении данных в форме.

Моя проблема в том, что datagridview.rows.count всегда равно 0Читая «ASME_AllowableStress.Rows.Count» я получаю полную таблицу в 2600 строк.Я не уверен, что я пропустил или объявил неправильно, чтобы не добавлять строки datagridview.Столбцы кажутся добавленными.

public Material(int mat_id)
    {
        this.ID = mat_id;
        MaterialDataSet materialDataSet = new MaterialDataSet();
        MaterialDataSetTableAdapters.ASME_2009_AllowableStressTableAdapter  aSME_2009_AllowableStressTableAdapter = new MaterialDataSetTableAdapters.ASME_2009_AllowableStressTableAdapter();
        MaterialDataSetTableAdapters.TableAdapterManager tableAdapterManager = new MaterialDataSetTableAdapters.TableAdapterManager();
        aSME_2009_AllowableStressTableAdapter.Fill(materialDataSet.ASME_2009_AllowableStress);
        DataGridView materialDataGridView = new DataGridView();
        DataView myView = materialDataSet.Tables[0].DefaultView;

        materialDataGridView.DataSource = myView;      


        MessageBox.Show(Convert.ToString(materialDataSet.ASME_2009_AllowableStress.Rows.Count));
        MessageBox.Show(Convert.ToString(materialDataGridView.Rows.Count));
        DataGridViewRow row = new DataGridViewRow();

1 Ответ

0 голосов
/ 07 марта 2012

Поскольку я не вижу остальной части вашего кода, я могу только предполагать; тем не менее, у меня была та же самая проблема сегодня на VB.net (я полагаю, что это C #?), и попытка сбросить таблицу в список (из T) или присоединить ее к комбинированному списку вместо этого не принесла результатов.

В конце концов, я сделал совершенно новую форму, скопировал абсолютно необходимый код, и ... это сработало. Разница между этими двумя формами заключается в том, что у меня был вызов InitializeComponent () в моей функции, которая обрабатывает Me.Load; Я думаю, что это было помещено туда автоматически из программы (я использую Visual Basic 2010 Express), но это, возможно, было помещено мной в момент рассеянности. Я вынул его, и все работает как нужно.

Почему этот (дополнительно? У меня нет собственного конструктора) вызов InitializeComponent () не вызывает абсолютно никаких данных (я также не мог программно добавить строки в таблицу), я понятия не имею, так как поиск InitializeComponent на MSDN не помогло.

В любом случае, я надеюсь, что это решит вашу собственную проблему; пожалуйста, дайте нам знать, если это так или нет!

...