3

これは、ほぼ無限のソリューションで実行できることを知っています。しかし、私は最も実用的な方法を探しています。

この種のことが必要なときは何度もあります:

ユーザーが郵便番号を入力し、郵便番号を定義済みの州と照合できるようにします。ユーザーが ComboBox から国名を選択し、国名と国コードを照合できるようにします。色付きの名前、価格付きのアイテム、時間付きの場所、私は何度も続けることができました.

これまでのところ、私がこれを行ったいくつかの方法があります

1 の場合:

if (input = Value1) { Something = Value1_OtherValue; }
else if (input = Value2) { Something = Value2_OtherValue; }
else if (input = Value2) { Something = Value3_OtherValue; }
else { Messagebox.Show("Error - No Match");}

2、DB を使用する:

@"Select Value_OtherValue FROM Table Where ValueList = '"+ Input +'";
DataSet DS = new DataSet();
SQLiteDataAdapter DA = new SQLiteDataAdapter(cmd);
DA.Fill(DS);
con.Close();
DataTable DT= DS.Tables[0];
if (DT.Rows.Count > 0)
{
    Something = DT.Rows[Dt.Rows.Count - 1][0].ToString());
}
else { Messagebox.Show("Error - No Match Found"); }

文字列または分割結合または他の多くの文字列操作で値を抽出するために使用します。これらのリストは絶対最大1,000の値のペアで数千または数百万になることはありません。 LINQ some how が最も実用的なアプローチですが、この種のコードを開始する方法について頭を悩ませることはできません。

これにはほとんどデータベースが必要であることは理解していますが、任意のタイプのデータベース型オブジェクトを使用する場合、これがアプリケーションに追加する唯一の理由であり、データベースを他に使用することはできません。多くても4~5ヶ月に1回の交換。したがって、この状況で DB を追加するのはやり過ぎのようです。

基本的に、値のペアがあり、反対の値が与えられたときに一致する値を使用したいと考えています。

4

1 に答える 1

0

SQLite は通常、人々が小規模なデータベース ソリューションに使用するものです。ソリューションにハードコーディングしたくない値がある場合 (または、構成ファイルで実用的であるには多すぎる場合) は、それらを小さなデータベースに貼り付けます。通常、テーブルは 2 つだけで、大きなものはありません。必要に応じて、Entity Framework を使用することもできます (SQLite EF プロバイダーがあります)。

やり過ぎではありません。MSDE を使用したり、SQL Server を要求したりするのはやり過ぎです。SQLite はそのために作られています。

于 2013-02-26T18:40:39.220 に答える