我有一个带有一些属性的对象位置(名称,经度,纬度等) 其中一个属性是对象" horizon"。
地平线有一个Dictionary <float,float>
(地方地平线上的点azimut-height集)
我想构建一个表来存储对象&#34; place&#34;,我遇到了对象的问题&#34;地平线&#34;
由于我不知道词典中有多少分,我不能为每个点构建一个列。
所以我想我必须创建另一张桌子&#34; dbo.horizons&#34;列
然后使用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命令以插入一个地平线
由于
答案 0 :(得分:1)
有很多方法,但让我们按照你现在的方式行事。
根据您的问题中的查询,您将获得每个地方的多行,因为您的datareader将为与地点关联的每个地平线都有一行。因此,您希望将该位置保留在变量中,并在每次datareader循环到新行时检查它以查看它是否是相同的位置。如果是,则只需将Horizon添加到当前场所。如果它已经改变,那么你知道要开始一个新的地方。
对于INSERT,您将不得不进行多步操作。您无法使用单个命令插入两个表。因此,您将把Place插入Place表,然后将每个Horizons插入Horizon表。