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、使用数据库:

@"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"); }

并使用字符串或拆分连接或许多其他字符串操作来提取值现在这些列表永远不会是数千或数百万可能在绝对最大一千个值对时,我可以想象一个带有分隔符的列表,一个数组,使用LINQ 一些方法将是最实用的方法,但我就是想不通如何启动这种代码。

我知道我几乎需要一个数据库,但如果我要使用任何类型的数据库类型对象,这将是将它添加到应用程序的唯一原因,我将没有其他用途的数据库,它只会是最多每 4 或 5 个月更换一次。因此,在这种情况下,添加数据库似乎是矫枉过正。

基本上我有值对,当给出相反的值时我想使用匹配值。

4

1 回答 1

0

SQLite 通常是人们用于小型数据库解决方案的工具。每当我有一些我不想在解决方案中硬编码的值(或者太多以至于在配置文件中不实用)时,我都会将它们放在一个小数据库中。通常只有几张桌子,没什么大不了的。如果你愿意,你甚至可以使用实体框架(有一个 SQLite EF 提供程序)。

这不是矫枉过正。拥有 MSDE 或需要 SQL Server 将是矫枉过正。SQLite 就是为此而生的。

于 2013-02-26T18:40:39.220 回答