2010-07-19 8 views
0

XmlRead()를 사용할 때 "테이블에 기본 키가 없습니다."라는 오류가 나타납니다. 그래서 기본 키를 어떻게 설정합니까? 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);

여기

편집 내 xml 파일의 형식의 기본 example이다. 각 CD에 대해 기본 키를 어떻게 설정합니까?

감사

+1

야, 그냥 빨리 제안 ... 당신의 데이터 집합에 MissingSchemaAction을 속성을 "AddWithKey 수"로 설정하고 작동하는지보십시오? – Marko

+0

xml 파일에 ID가 있어야합니까, 아니면 데이터 집합에서이 작업을 수행합니까? – arbme

+0

나는 XML 파일이 그 테이블에 대한 PK가 될 ID (unique)를 가질 필요가 있다고 믿는다. – Marko

답변

2

감사합니다. 모두 도와 주셔서 감사합니다. 다른 사람들에게 도움이된다면 아래의 예가 저에게 도움이되었습니다.

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

0

당신은 PK가 정의 될 수있는 스키마, 데이터 집합에 XML 데이터를 읽고,하지만하지 않습니다.

정의되지 않은 Pk가 필요한 Find 메서드를 사용하면 오류가 발생합니다.

데이터를로드 한 후 수동으로 정의하거나 xml과 스키마를 저장 /로드하십시오.

관련 문제