将#SQLite查询结果添加到List <string> </string>时,C#应用程序冻结

时间:2013-07-05 13:13:26

标签: c# .net sqlite

我有一个返回66行的查询,每行包含一个unique_id,我想将结果保存在List中,以便我可以将它们用于进一步的查询。但代码冻结在应该将行添加到列表的行。我找不到我的问题所在!这是我的代码:

public List<string> unique_id;
public List<string> get_unique_id_connection()
    {
        SQLiteConnection m_dbConnection;
        m_dbConnection = new SQLiteConnection("Data Source=akm.sqlite;version=3;");

        m_dbConnection.Open();
        string sql2 = "SELECT unique_id FROM mos_tbl WHERE region = 10";
        SQLiteCommand command2 = new SQLiteCommand(sql2, m_dbConnection);
        SQLiteDataReader rdr2 = null;
        rdr2 = command2.ExecuteReader();
        while (rdr2.Read())
        {
            for (int i = 0; i < rdr2.FieldCount; i++)
            {
                //MessageBox.Show(rdr2.GetValue(i).ToString());
                unique_id.Add(rdr2.GetValue(i).ToString());//This is where it freezes
            }
        }
        return unique_id;
    }

当我取消注释MessageBox时,我可以看到正确的结果,所以我猜问题不是查询。

1 个答案:

答案 0 :(得分:3)

你确定没有抛出 NullReferenceException 吗?看起来在向元素添加元素时没有创建unique_id列表对象。