C# 连接到SQLite数据库的C WPF DataGrid
我是C和WPF的新手,所以我非常感谢您的帮助 我无法让WPF网格连接到SQLite数据库并显示其数据。我只是在没有任何数据的情况下显示网格 Home.xaml上的Datagrid代码:C# 连接到SQLite数据库的C WPF DataGrid,c#,sqlite,datagrid,C#,Sqlite,Datagrid,我是C和WPF的新手,所以我非常感谢您的帮助 我无法让WPF网格连接到SQLite数据库并显示其数据。我只是在没有任何数据的情况下显示网格 Home.xaml上的Datagrid代码: <DataGrid Name="DataGridHome" Margin="10,66,242,185" Grid.Row="2" Grid.Column="0" AutoGenerateColumns="False" CanUserAddRows="False" CanUser
<DataGrid Name="DataGridHome" Margin="10,66,242,185" Grid.Row="2" Grid.Column="0" AutoGenerateColumns="False" CanUserAddRows="False"
CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserResizeColumns="False"
CanUserResizeRows="False" CanUserSortColumns="False" SelectionMode="Single" SelectionChanged="DataGrid_SelectionChanged">
<DataGrid.Columns>
<DataGridTextColumn Header="id" Visibility="Hidden"/>
<DataGridTextColumn Header="Surname" FontFamily="Arial"/>
<DataGridTextColumn Header="First Name" FontFamily="Arial" />
<DataGridTextColumn Header="DoorNum" FontFamily="Arial"/>
<DataGridTextColumn Header="StreetName" FontFamily="Arial"/>
<DataGridTextColumn Header="StreetName2" FontFamily="Arial"/>
<DataGridTextColumn Header="City" FontFamily="Arial"/>
<DataGridTextColumn Header="PostCode" FontFamily="Arial"/>
<DataGridTextColumn Header="Belt" FontFamily="Arial"/>
<DataGridTextColumn Header="AccountType" FontFamily="Arial"/>
<DataGridTextColumn Header="JoinDate" FontFamily="Arial"/>
<DataGridTextColumn Header="MembershipActive" FontFamily="Arial"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
App.config代码“我的数据库”没有任何用户名或密码:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add connectionString="Data Source=MemberDB.db; Initial Catalog=Pubs;" name="ConString"/>
</connectionStrings>
</configuration>
C代码Home.xaml.cs:
using System;
using System.Windows;
using System.Windows.Controls;
using System.Data;
using System.Data.SqlClient;
using System.Data.SQLite;
using System.IO;
namespace KarateClub
{
/// <summary>
/// Interaction logic for Home.xaml
/// </summary>
public partial class Home : Page
{
public Home()
{
InitializeComponent();
DataBaseConnection();
}
private void DataBaseConnection()
{
try
{
SQLiteConnection sqlite = new SQLiteConnection("Data Source=MemberDB.db; Version=3;");
SQLiteCommand sqlcmd;
sqlite.Open();
sqlcmd = sqlite.CreateCommand();
string query = "SELECT * FROM Members";
sqlcmd.CommandText = query;
SQLiteDataAdapter sda = new SQLiteDataAdapter(sqlcmd);
DataTable dt = new DataTable("Members");
sda.Fill(dt);
DataGridHome.ItemsSource = dt.DefaultView;
sqlite.Close();
}
catch(SQLiteException ex)
{
Console.WriteLine("SQLite DataBase Error!");
}
}
....
我认为App.config或我在C代码中与数据库的连接一定有问题。我不知道App.config中的name=ConString应该如何与C代码一起使用以访问SQLite
在线研究这一点非常困难——一些人使用Dapper,其他人使用ADO.NET,那些与我有类似代码的人使用的不是DataGrid,而是简单的列表视图
谢谢:您可以尝试在数据源中提供完整的文件路径。通过调试,验证sda变量是否具有来自数据库的必需值。您可以找到有效的SQL Lite连接字符串列表。datagrid连接到列表->这是您需要执行的操作: 创建一个表示数据库中对象的类,例如Person 列出某人的名单 建立一个数据库连接,我建议简洁 填写清单,例如,有物品的人 将Datagrid绑定到列表 好的教程:
您是否尝试过调试代码?datatable在这一行sda.Filldt;之后有行吗;?谢谢你的信息。是的,另一个选项是使用对象关系映射程序,如Dapper或ADO.NET。不过,我上面提到的直接使用数据库的方法应该仍然有效。我在看这个:谢谢,我需要学习更多关于VisualStudio中调试的知识。我试试看。