c# - 使用 C# 和 WPF 将数据从 SQLite 绑定(bind)到 DataGrid

标签 c# wpf sqlite datagrid

我在 MyController 中有一个方法 Load:

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 浏览器打开数据库, View content_for_dg 存在并包含正确的数据...

我错过了什么?为什么数据没有显示在 DataGrid 中?

最佳答案

如果我删除 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)
    {
        //...;
    }
}

关于c# - 使用 C# 和 WPF 将数据从 SQLite 绑定(bind)到 DataGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50356191/

相关文章:

c# - 无法访问 Razor 代码中内联声明的变量

c++ - 在 sqlite3 语句中绑定(bind) 'unsigned long' (uint64)? C++

arrays - 从 BASH 数组创建 SQLite3 表

c# - 如何将所有列作为属性的 DataTable 导出到 Xml?

c# - 关闭/忽略 xsd 代码生成中指定的字段后缀

c# - 这个 URI 有什么问题?

c# - 在 DataTemplate 上找不到 TargetType 属性

c# - 如果中间发生另一个事件,调度程序计时器如何在滴答事件中执行其工作?这段代码有什么问题?

python - 如何更新 Django models.py 中的外键字段?

c# - 如何在 Visual Studio 2008 中使用作为项目添加的 SQL 数据库?