-2

我有这么多城市名字。我想将这个城市存储到我的设备数据库中。而且我使用隔离存储设置,但isolatad存储只允许我添加一个城市。如何显示这个城市?

我的 C# 代码用于存储城市是:

if (!setting.Contains("CityDetail"))
            {

                setting.Add("CityDetail", cityname);

                //MessageBox.Show(cityname + "  is successfully added in the favorites");
            }
            else
            {
                cityname = (string)setting["CityDetail"];


                //MessageBox.Show(cityname + "  is allready added in the favorites");
            }
            //setting.Save();
4

2 回答 2

2

看起来您正在尝试在 Phone 中保存城市列表,如果是这种情况,那么建议您应该更喜欢Local SQL DatabaseXML。这样你就可以在你的应用程序中拥有任何类型的持久数据。它可能是一个城市列表或一些复杂的对象。

要了解更多信息,请参阅: 本地 SQL 数据库读取和保存 XML 文件

如果您需要将其保存在独立存储设置中(由于某些不可避免的原因),那么您需要将key部分key-value对更改为某个动态值(例如 city1、city2、city3 ....)

setting.Add("city1", city1);

稍后 要检索所有城市,您可以使用循环,例如

for(int i=0; i<totalCities ; i++)
{
 //prepare key value
String cityNumber = "city" + i;

String cityName = settings[cityNumber].ToString();
//here you get your city name Add it to a list or Array

}       

请注意,您需要在 Application Settings 中存储 Number of Cities 并更新它们并将它们分配给totalCities.

编辑:

将城市数量保存到应用设置(比如“totalCities”):每次添加城市时,都会像这样更新城市数量

    void Update()
{    
int presentCities;

//Retrieve present number of cities
presentCities = (string)setting["totalCities"];

//Save updated valu to application setting
Add.Settings("totalCities", presentCities + 1); 

 }

要检索只需使用(int)setting["totalCities"]

于 2012-09-04T13:10:39.243 回答
1

隔离存储设置实际上是通用字典的实现。它包含键值对,并且集合中的所有键都必须是唯一的(就像字典一样)。我认为您想要存储多个城市名称。您要么必须使用多个键,

 setting.Add("City1", city1);
 setting.Add("City2", city2);
 setting.Add("City3", city3);

或者您可以将数组存储在一个键下:

 setting.Add("Cities", new string[] { city1, city2, city3 });

不确定哪个更合适,因为您的问题并不完全清楚。

于 2012-09-04T12:57:16.523 回答