Связывание данных из SQLite в DataGrid с использованием C # и WPF - PullRequest
0 голосов
/ 15 мая 2018

У меня есть метод Load в MyController:

public void Load(ItemsControl control, string commandText)
{
    try
    {
        _db.OpenConnection();

        using (SQLiteCommand command = new SQLiteCommand(commandText, _db.Connection))
        using (SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter(command))
        {
            DataTable dataTable = new DataTable();
            dataAdapter.Fill(dataTable);
            control.ItemsSource = dataTable.AsDataView();
        }
    }
    catch (Exception exp)
    {
        //...;
    }
}

Затем в XAML У меня есть:

<DataGrid x:Name="DataGrid_1" ... AutoGenerateColumns="True" Loaded="DataGrid_1_Loaded">

и, наконец, в DataGrid_1_Loaded() Явызывая метод Load() следующим образом:

MyController.Load(DataGrid_1, "CREATE VIEW IF NOT EXISTS content_for_dg AS SELECT name,surname FROM people");

Когда я запускаю программу, я вижу небольшой пробел в верхней части Data_Grid_1, но нет столбцов и нет данных.Я открыл базу данных с помощью браузера SQLite, и представление content_for_dg существует и содержит правильные данные ...

Чего мне не хватает?Почему данные не отображаются в DataGrid?

1 Ответ

0 голосов
/ 15 мая 2018

Если я удаляю using (SQLiteCommand command = new SQLiteCommand(commandText, _db.Connection)) и создаю SQLiteDataAdapter таким образом SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter(commandText, _db.Connection), то все работает нормально ...

public void Load(ItemsControl control, string commandText)
{
    try
    {
        _db.OpenConnection();

        using (SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter(commandText, _db.Connection))
        {
            DataTable dataTable = new DataTable();
            dataAdapter.Fill(dataTable);
            control.ItemsSource = dataTable.AsDataView();
        }
    }
    catch (Exception exp)
    {
        //...;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...