2009-11-21 5 views
0

나는 약 2 시간 동안이 코드가 작동을 얻기 위해 노력하고 있어요 통해 콤보 상자에 바인딩의 XML = (나는 C#을 새로운 오전 및 모든 .NET 라이브러리 클래스를 모르는C# : 데이터 집합

대상이다. 으로 comboBox

DataSet dataSet = new DataSet(); 
DataTable dataTable = new DataTable("table1"); 
dataTable.Columns.Add("col1", typeof(string)); 
dataSet.Tables.Add(dataTable); 

StringReader strR = new StringReader("<root><parm1>val1</parm1><parm2>val2</parm2></root>"); 

dataSet.ReadXml(strR); 

comboBox1.DataSource = dataSet.Tables[0]; 
comboBox1.DisplayMember = "col1"; 
comboBox1.ValueMember = "col1"; 

잘 XML 데이터를 채우는, 그것은 예상대로. 콤보 상자가 표시되어야합니다 작동하지 않습니다 val1과 을 val2

정말 관련이 얼마나 컬럼의 DataTable의 이름을 데이터 집합 이해하지 않는다 XML-Tags ... 어쩌면 그것이 요점입니까?

미리 감사드립니다.

답변

5

다음 작업을해야합니다 : 테이블과 컬럼의

DataSet dataSet = new DataSet(); 
DataTable dataTable = new DataTable("table1"); 
dataTable.Columns.Add("col1", typeof(string)); 
dataSet.Tables.Add(dataTable); 

StringReader strR = new StringReader("<root><table1><col1>val1</col1></table1><table1><col1>val2</col1></table1></root>"); 

dataSet.ReadXml(strR); 

comboBox1.DataSource = dataSet.Tables[0]; 
comboBox1.DisplayMember = "col1"; 
comboBox1.ValueMember = "col1"; 

이름은 사용하는 C#을 객체와 XML 데이터 간의 일관성이 있어야합니다.

+0

감사합니다! 이 작동합니다. 그게 전부 정말 간단합니다. 테이블은 부모 노드이고 가장 깊은 노드는 열입니다 ... – samunai