0

SI私のアプリケーションには、2 つの単位 ( 、 )のデータベースが必要USです。ユーザーが単位を使用することを選択したら、SI終了時に値を US DB に変換してUS保存する必要があります。

ユーザーが (SI 単位) を選択し、フォームの 1 つで変数 THickness を編集するとします。

終了時に、これらを SI 単位 DB にも保存する必要があります。現在、プログラムはすべての保存入力を行います....およびその他のものは1つのDBでのみ実行されます。

これを達成する方法についての入力は良いでしょう

これまでに行ったことは次のとおりです終了時に、スキーマ作成用の別の接続を作成し、

private void btnExit_Click(object sender, EventArgs e)
{
    DbConnection c = CreateConnectionForSchemaCreation("STAR-SI.Sqlite");
    this.Close();   
}

public DbConnection CreateConnectionForSchemaCreation(string fileName)
{
    var connOther = new SQLiteConnection();
    connOther.ConnectionString = new DbConnectionStringBuilder()
    {
        {"Data Source", fileName},
        {"Version", "3"},
        {"FailIfMissing", "False"},
    }.ConnectionString;

    connOther.Open();
    return connOther;
}
4

2 に答える 2

2

ユーザーが何度も行ったり来たりする場合はどうなりますか?ユーザーが単位を切り替えるたびにデータベースを再生成する必要があるように思われますが、不必要に複雑です。

SI単位の可能な各選択肢と、米国の測定における対応する選択肢との間に、明確な1:1のマッピングがありますか?

次のいずれかをお勧めします。

  • 1:1マッピングがある場合は、SIまたはUS単位のいずれかに保存し、必要に応じてアプリケーション層でもう一方に変換します
  • 1:1マッピングがない場合は、単一のデータベースにSI単位とUS単位のnull許容列を含めます。ユーザーの選択を適切な列に保存し、他の列をnullにします。
于 2012-08-07T16:51:53.257 に答える
0

これを行う間違った方法では、UnitOfMeasure フィールドに値を格納する必要があります。

例えば

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

次に、ユーザーのプロファイルで、SI または US の設定があり、データの操作に必要に応じて変換します。

いくつかのデータベース関数、追加の列、UOM を保持するためのテーブル、および変換用の 1 つのテーブルで、作業は完了です。

言うまでもなく、16オンスからポンドなどのシステム変換を処理できますが、これはほぼ同じコードです.

于 2012-08-07T17:22:35.997 に答える