数据集错误“表没有主键。”使用XmlRead()时

时间:2010-07-19 23:08:57

标签: c# xml dataset

我收到错误“表没有主键”。所以如何设置主键,当我调用ReadXml()或错过arg时,它不会这样做吗?

MemoryStream msXml = new MemoryStream(byteArray);
DataSet dsXml = new DataSet();
dsXml.ReadXml(msXml);
string s = "123456789";
DataRow foundRow = dsXml.Tables["Accounts"].Rows.Find(s);

EDITED

这是我的xml文件格式的基本example。如何为每张CD设置主键?

由于

2 个答案:

答案 0 :(得分:2)

感谢大家的帮助,我设法弄明白了。如果对其他人有帮助,下面的例子对我有用。

DataSet dsXml = new DataSet();
dsXml.ReadXml(msXml);
DataTable tbl;
tbl = dsXml.Tables["Accounts"];
tbl.PrimaryKey = new DataColumn[] { tbl.Columns["Id"] };

答案 1 :(得分:0)

您正在将XML数据读入数据集,而不是Schema,这是定义PK的位置。

使用需要Pk的Find方法时会引发错误,该方法未定义。

在加载数据后手动定义一个,或者保存/加载xml和schema。