我试图让这段代码工作大约2个小时=(我是C#的新手,并不知道所有的.NET库类。
目标是将XML数据填充到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";
嗯,它没有按预期工作。 ComboBox应该显示 VAL1 val2的
我真的不明白DataSet中DataTable的列名如何与XML-Tags相关......也许这就是重点?
提前谢谢你!
答案 0 :(得分: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数据之间保持一致。