我在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。
我在第一次启动应用程序时创建了数据库。
答案 0 :(得分:1)
删除对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;
}