通过转换其单位制作数据库副本

时间:2012-08-07 16:46:45

标签: c# sqlite

我的应用程序需要一个包含两个单元的数据库(SIUS)。一旦用户选择使用SI个单元,退出时我需要将值转换为{ {1}}并将其保存在US DB

假设用户选择(SI单位)并对其中一个表单上的变量THickness进行一些编辑。

退出时,我也应该将它们保存在SI单位DB中。目前,该程序只在一个数据库中执行所有保存输入....和其他内容。

关于如何实现这一目标的任何意见都很好

这是我到目前为止所做的 在退出时,为模式创建创建另一个连接,

US

2 个答案:

答案 0 :(得分:2)

如果用户多次来回转换怎么办?似乎每次用户切换单元时都必须重新生成数据库,这是不必要的复杂。

在SI单位的每个可能选择与美国测量中的相应选择之间是否存在明确的1:1映射?

我会建议以下之一:

  • 如果存在1:1映射,则存储在SI或US单位之一中,并在需要时将其转换为应用程序层中的另一个
  • 如果没有1:1映射,则在单个数据库中为SI和US单位设置可为空的列。将用户的选择存储在相应的列中,并使另一列为空。

答案 1 :(得分:0)

执行此操作的方法错误,您应该将UnitOfMeasure字段与值一起存储。

e.g。

"Weight 1",1,"kilogram"
"Weight 2",2.2,"lb"

然后在用户的个人资料中,他们优先选择SI或US,并按照数据操作的要求进行转换。

一些数据库函数,一个额外的列,一个用于保存UOM的表,一个用于转换,完成工作。

更不用说你可以处理系统转换,例如16盎司到磅等,几乎完全相同的代码。