我有一个对象的一些属性(名称,经度,纬度等)其中一个属性是对象"horizon"。
地平线有一个Dictionary <float,float>
(地点地平线的方位高度点集合)
我想建立一个表来存储对象"place",我在对象"horizon"上遇到了麻烦
由于我不知道字典中有多少个点,所以我不能为每个点建立一个列。
所以我想我必须创建另一个表"dbo "。"地平线"和列
- 地名varchar
- 方位-实际
- height - real
,然后使用JOIN选择所有的
但是我不明白如何构建命令
如果我输入这样的命令:
SELECT places.name, places.longitude, places.latitude...,
horizon.azimut, horizon.height
FROM places LEFT JOIN dbo.horizons
ON places.name = dbo.horizons.namePlace
我怎么读?
我使用dataRedaer.Read()
读取数据库中的一行。
我如何得到所有的点,只建立一个地方?
在插入中也有同样的问题,我如何创建一个insert命令来插入地平线
谢谢
有很多方法,但让我们以您目前的方法为例。
对于问题中的查询,您将为每个位置获得多行,因为您的数据阅读器将为与某个位置相关的每个地平线拥有一行。因此,您需要将位置保存在一个变量中,并在每次数据读取器循环到新行时检查它,以查看这是否是同一个位置。如果是,那么只需将Horizon添加到当前Place。如果它已经改变了,那么你知道要开始一个新的地方。
对于INSERT,您将不得不执行一个多步骤操作。不能使用单个命令向两个表中插入数据。因此,您将插入位置到位置表中,然后将每个地平线插入到地平线表中。