C#——sqlite替代mysql过程中遇到的问题

 项目背景:程序由网络版改成单机版,mysql数据库安装复杂容易出错,由sqlite3替代,----access不支持分页的sql操作

1.

问题:会出现”database is locked!

原因:“sqlite不支持多线程并发操作的,改造过程中,代码分散,数据库操作完成后数据库连接未被释放,或者引用存在,显式去释放资源,不成功

解决办法,由于时间有限,代码复杂,没时间一一优化,使用FluentData--ORM框架代替原来的Sqlite-.net的原始数据库操作

2.

问题:Sqlite3 DateTime格式问题,格式不一致出现DateTime字段的值无法正常读写!

原因:sqlite3 ,DateTime格式有类型限制,兼容性不好

解决办法:SqliteDev,修改数据类型DateTime--》Sqlite,程序中时间类型统一改为"yyyy-MM-dd HH:mm:ss","yyyy-MM-dd","HH:mm:ss"

3

问题:原始项目是vs2010的开发环境,小数据库改造是在vs2015中进行的,由于vs2015无打包插件,返回vs2010运行,运行不成功 -----出现:找不到请求的 .Net Framework Data Provider

解决办法:

1》在app.config中添加:

<DbProviderFactories>

<!-- 其他的驱动-->

<add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</DbProviderFactories> 

2》在vs2010环境中运行sqlite-netFx40-setup-bundle-x86-2010-1.0.101.0.exe

 

posted @ 2016-05-06 17:44  stone.cn  阅读(715)  评论(0)    收藏  举报