将数据网格绑定到SQLite

问题描述 投票:1回答:3

我正在使用C#WPF和SQLite创建一个测试数据库。我正要将一个数据网格添加到表单中,我希望将其添加到数据库中。但我对这个很陌生并且很挣扎。有没有人有任何好的网站/概述如何做到这一点?

谢谢。

wpf sqlite
3个回答
1
投票

像这样添加一个带有2列的数据网格到您的应用程序ui

 <DataGrid  Name="mydatagrid"   AutoGenerateColumns="False" Height="300"  Width="400" Loaded="DataGrid_Loaded">
        <DataGrid.Columns>


            <DataGridTextColumn Header="Name" Width="100" Binding="{Binding nam}"></DataGridTextColumn>
            <DataGridTextColumn Header="password" Width="100" Binding="{Binding pas}"></DataGridTextColumn>



        </DataGrid.Columns>

    </DataGrid>

用名为account的表创建sqlite数据库,该表包含名称和密码(nam,pass)然后你需要插入一个名字和密码

using System.Data.SQLite;
using System.Data;
using System.Windows.Data;
using System.Windows.Controls; 

public void creat_db()
{
 SQLiteConnection.CreateFile("e:\\MyDatabase.sqlite");
       var con = new SQLiteConnection("Data Source=e:\\MyDatabase.sqlite;");
        con.Open();
        String sql = "CREATE TABLE acc (nam STRING, pas STRING)";
        SQLiteCommand command = new SQLiteCommand(sql, con);
      command.ExecuteNonQuery();

string name = "joe",password="123";

  sql = ("insert into acc (nam,Pas)values('" + name + "','" + password + "')");

        SQLiteCommand insertcommand = new SQLiteCommand(sql, con);
        insertcommand.ExecuteNonQuery();
        con.Close();
}

在datagrid上查看数据库

public void refresh()
    {
        var con = new SQLiteConnection("Data Source=e:\\MyDatabase.sqlite;");
        try
        {
            con.Open();
            SQLiteCommand cmd = con.CreateCommand();
            cmd.CommandText = "SELECT * FROM acc ";
            using (SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter(cmd.CommandText, con))
            {
                DataTable dataTable = new DataTable();
                dataAdapter.Fill(dataTable);

                mydatagrid.ItemsSource =  dataTable.AsDataView();

            }
        }
        catch (Exception exp)
        {
            MessageBox.Show(exp.Message);
        }

    }

在加载时刷新datagrid

  private void DataGrid_Loaded(object sender, RoutedEventArgs e)
    {
       refresh();
    }

此示例显示了它的完成程度,您可以看到此链接以获取有关datagrid绑定WPF-and-SQLite-Database的更多选项


0
投票

不确定这是否是你需要的,但它可能会帮助你Microsoft Step by Step


0
投票

我发现了一个非常好的页面,它给了我所需要的东西:

How to bind your datagrid

© www.soinside.com 2019 - 2024. All rights reserved.