最近做了一个盘点的项目,手持设备用的MC1000,选择的数据库是sqlite,开发语言是C#,盘点程序的处理逻辑是
1.扫描货品条码,在货品基础资料表中判断条码是否存在。
2.如果存在则在对应的盘点单据中存入扫描信息。程序用的3层结构,在UI层开启一个全局的connection,然后打开连接,每次执行扫描的方法时,将connection传到数据访问层,然后执行添加或者更新的代码。单发现每扫描6到7次后,程序就会出现假死的状态,后来发现时sqlite没有处理完,等处理完后程序又正常了。
后来我在UI层全局定义了一个transaction,每次和connection一起传到数据访问层,发现速度提升了,不会出现假死的状态,但是如果每次扫描都将事务提交的话,程序速度又降下来了。如果事务不提交,那么数据将不会保存,如果每次都提交事务速度又慢,这种盘点程序又不可能最后一起提交事务,那样会出现数据丢失的情况。请问高手有没有什么办法,每次扫描的数据既要提交,速度还不能太慢。我的程序现在相应时间大约为0.5秒。
1.扫描货品条码,在货品基础资料表中判断条码是否存在。
2.如果存在则在对应的盘点单据中存入扫描信息。程序用的3层结构,在UI层开启一个全局的connection,然后打开连接,每次执行扫描的方法时,将connection传到数据访问层,然后执行添加或者更新的代码。单发现每扫描6到7次后,程序就会出现假死的状态,后来发现时sqlite没有处理完,等处理完后程序又正常了。
后来我在UI层全局定义了一个transaction,每次和connection一起传到数据访问层,发现速度提升了,不会出现假死的状态,但是如果每次扫描都将事务提交的话,程序速度又降下来了。如果事务不提交,那么数据将不会保存,如果每次都提交事务速度又慢,这种盘点程序又不可能最后一起提交事务,那样会出现数据丢失的情况。请问高手有没有什么办法,每次扫描的数据既要提交,速度还不能太慢。我的程序现在相应时间大约为0.5秒。
许多时候,先做一个基于文件的解决方案就好了。