C# ADO.NET:如何表示从表中选择一行?

C# ADO.NET:如何表示从表中选择一行?,c#,xml,database-design,ado.net,C#,Xml,Database Design,Ado.net,我有一个作为XML持久化的ADO.NET数据集。我需要添加一个城市列表,允许用户选择他们所在的城市。选择必须与其余数据一起存储在XML文件中 这似乎是DataSet.ExtendedProperties的完美用法。然而,事实证明,为了将扩展属性写入XML,我需要使用XmlWriteMode.WriteSchema和XmlReadMode.ReadSchema,这将数据集的整个模式添加到XML文件中,这样它就可以添加单个属性,msprop:CityID 我的数据集是强类型的,其模式由设计器硬编码,

我有一个作为XML持久化的ADO.NET数据集。我需要添加一个城市列表,允许用户选择他们所在的城市。选择必须与其余数据一起存储在XML文件中

这似乎是
DataSet.ExtendedProperties
的完美用法。然而,事实证明,为了将扩展属性写入XML,我需要使用
XmlWriteMode.WriteSchema
XmlReadMode.ReadSchema
,这将数据集的整个模式添加到XML文件中,这样它就可以添加单个属性,
msprop:CityID

我的数据集是强类型的,其模式由设计器硬编码,因此我确实不需要将模式存储在XML中,这可能会导致运行时错误

所以我的问题是,将所选城市添加到数据集本身的最佳方式是什么。例如,使用另一个名为
SelectedCity
的表,或在名为
IsSelected
City
表中使用布尔列

SelectedCity
表始终需要只包含一行,
IsSelected
列需要只包含一行
true
,所有其他行都需要包含
false
,我不知道如何在ADO.NET中强制执行这些约束


这似乎是一种相当普遍的情况。推荐的编码方式是什么?

如果关系为1:1,则将字段放在父字段中,但如果用户可以将不同的1:N放在另一个表中。对不起,我说的是英语。

您指的是哪种关系?所有用户的城市列表都是相同的?或者取决于用户是谁。如果所有用户只有一个列表,请使用列表中的isselected字段。这不是客户机-服务器应用程序。每个用户都有自己的安装,城市列表是从其中一个安装的文件中读取的,但我还想将其放入数据集中,以便在数据绑定控件中显示。将其添加到isselected字段中,这是最好的方法。