sqlite 判断数据表是否存在 失效的一种情况

前提条件
1.主项目下挂在了多个子项目 主项目 和 各个子项目又用的是不同的数据库
2.将判断是否存在的代码 和 建表代码都放进了线程中

Thread t = new Thread(SqLiteUse.CreatePianChaTable);
                t.Start();

检测数据表是否存在的语句没问题

cmd.CommandText = "SELECT count(*) from sqlite_master where type='table' and name='" + tableName +"'; ";

经过测试 拿到线程外可以正常检测到表是否被创建
但是放在线程里 就会一直返回表不存在

我猜测出现的原因是
在多个项目的情况下 ,由于有多个数据库文件,造成了 要查询的sqlite_master 中 根本就不存在我要检测是否存在的数据表

因为我在单独运行这个子项目的时候,就算在线程里也是可以正常检测数据表是否存在的
这个坑踩的很难受,记录一下

你可能感兴趣的:(sqlite)