[英]Binding data from SQLite to DataGrid using C# and WPF
我在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 浏览器打开了数据库,视图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)
{
//...;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.