只是一些背景,对不起,这么久了。
我正在使用system.data.sqlite ado.net适配器创建本地sqlite数据库,这将是访问数据库的唯一进程,因此我不需要担心并发性。
我正在从各种来源构建数据库,不想使用数据集、数据适配器或类似的东西构建内存中的所有内容。我想使用SQL(ddcommands)来实现这一点。我不太擅长SQL和SQLite中的完全noob。我基本上使用sqlite作为本地数据库/保存文件结构。
数据库有很多相关的表,数据与人员、地区或地区无关,但要使用一个简单的类比,请想象:
带有自动递增regionid、regionname列和各种可选列的区域表。
带有自动递增districtid、districtname、regionid和各种可选列的区域表
带有自动递增的personid、personname、districid和各种可选列的person表
所以我得到了一些代表地区名、地区名、人名和其他人相关数据的数据。此时可以或不可以创建区域、地区和/或人员。
再一次,不是最伟大的,我的想法是:
-
检查区域是否存在,如果存在,则获取区域ID
-
否则创建它并获取regionid
-
检查区域是否存在,如果存在,则获取区域
-
否则创建它,从上面添加regionid并得到districid
-
检查人员是否存在,如果存在,获取人员ID
-
否则创建它,从上面添加districted并获取personid
-
使用其他数据更新人员。
在MS SQL Server中,我将创建一个存储过程来处理所有这些问题。
我能用sqlite实现这一点的唯一方法是使用大量命令。所以我肯定我不明白。我花了好几个小时在不同的网站上四处寻找,但只是觉得自己走错了路。任何建议都将不胜感激。