Sq-lite查询不会从数据库中获取所有行

时间:2018-11-27 12:00:48

标签: wpf sqlite

我在WPF中使用Sqlite。 我遇到一个问题,不是所有行都显示在搜索查询中。 假设我有4行,如下所示:

enter image description here

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。

我在第一次启动应用程序时创建了数据库。

1 个答案:

答案 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;

    }