簡體   English   中英

使用 C# 和 WPF 將數據從 SQLite 綁定到 DataGrid

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM