DataGrid динамические таблицы заполнены пустыми строками C # [дубликаты]

0

Я должен отображать каждую строку из таблицы, которую выбирает пользователь, все кажется хорошим, но таблица заполняется пустыми строками, я использую DataGrid для отображения данных. Может ли кто-нибудь сказать мне, что я делаю неправильно здесь?

private void showSelectedTable(object sender, RoutedEventArgs e)
    {
        if (mysql.IsChecked == true)
        {
            string query = "SELECT * FROM " + tableListBox.SelectedItem.ToString();
            MySqlCommand myTableContent = new MySqlCommand(query, (MySqlConnection)conn);
            try
            {
                MySqlDataReader myReader = null;
                myReader = myTableContent.ExecuteReader();
                choosenDataTable = myReader.GetSchemaTable();
                foreach (DataRow row in choosenDataTable.Rows)
                {
                    DataGridTextColumn textColumn = new DataGridTextColumn();
                    textColumn.Header = row.Field<String>("ColumnName");
                    tableDataGrid.Columns.Add(textColumn);
                }

                if (myReader.HasRows)
                {
                    while (myReader.Read())
                    {
                        ObservableCollection<String> observable = new ObservableCollection<String>();
                        for (int i = 1; i < myReader.Columns.Count; i++)
                        {
                            observable.Add(myReader.GetString(i));

                        }
                        tableDataGrid.Items.Add(observable);
                    }
                }

            }
            catch(SqlException ex)
            {
                MessageBox.Show(ex.Message.ToString());
            }


        }
    }

Мои окна приложений с "заполненным" DataGrid

  • 0
    Приложение WPF, и есть DataGrid
  • 0
    OP, ответ, кажется, состоит в том, чтобы скопировать данные MySqlDataReader в DataTable. В этом нет ничего сложного, но дайте мне знать, если у вас возникнут какие-либо препятствия. Вы будете добавлять столбцы в DataTable, а не в DataGrid - тогда, если хотите, вы можете просто позволить Data автоматически генерировать свои собственные столбцы на основе DataTable.
Теги:
wpf

1 ответ

0

Вы можете разделить проблему на части

  1. Динамическое создание таблицы из источника данных
  2. Присоедините этот динамический источник данных к Gridview

Но я думаю, что это решит ваши обе проблемы, и это то, что вы хотите

  • 0
    Моя проблема почти решена, этот код работает, но мне нужна только помощь с входными данными в DataGrid, потому что я получаю свои данные, но когда я хочу добавить их, я получаю пустые строки
  • 0
    Можете ли вы обновить код с тем, что вы пытались?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню