我在WPF中使用Sqlite。
我遇到一个问题,不是所有行都显示在搜索查询中。
假设我有4行,如下所示:
SQLiteConnection m_dbConnection;
m_dbConnection = new SQLiteConnection("Data
Source=SGenDB.sqlite;Version=3;MultipleActiveResultSets=true;");
m_dbConnection.Open();
SQLiteCommand commandM = new SQLiteCommand(m_dbConnection);
// sqlM
commandM.CommandText = "select * from TModels where PID=@Pid";
commandM.Parameters.AddWithValue("@Pid", "bb18a0d3-9dd3-4f20-a182-b90f8b79fbc2");
SQLiteDataReader readerM = commandM.ExecuteReader();
readerM.Read();
while (readerM.Read())
{
//DataGrid Binding
DG_LoadProject.ItemsSource = readerM;
}
查询总是只返回一行,而第一行总是被忽略。
我尝试另一个数据样本,该样本具有4行,而查询仅返回3。
我首先启动该应用程序中的数据库。
最佳答案
删除对readerM.Read()行的第一次调用。这是在读取第一行,但不对其执行任何操作。
因此,代码应为:
SQLiteConnection m_dbConnection;
m_dbConnection = new SQLiteConnection("Data
Source=SGenDB.sqlite;Version=3;MultipleActiveResultSets=true;");
m_dbConnection.Open();
SQLiteCommand commandM = new SQLiteCommand(m_dbConnection);
// sqlM
commandM.CommandText = "select * from TModels where PID=@Pid";
commandM.Parameters.AddWithValue("@Pid", "bb18a0d3-9dd3-4f20-a182-b90f8b79fbc2");
SQLiteDataReader readerM = commandM.ExecuteReader();
while (readerM.Read())
{
//DataGrid Binding
DG_LoadProject.ItemsSource = readerM;
}
关于wpf - Sq-lite查询不会从数据库中获取所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53499232/