gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:03:40 24 4
gpt4 key购买 nike

我在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com