【问题标题】:C#: Bind XML to ComboBox via DataSetC#:通过 DataSet 将 XML 绑定到 ComboBox
【发布时间】:2009-11-21 19:57:56
【问题描述】:

我试图让这段代码工作大约 2 小时 =(我是 C# 新手,不知道所有的 .NET 库类。

目标是将 XML 数据填充到组合框

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";

嗯,它没有按预期工作。组合框应显示 val1 val2

我不太明白 DataSet 中 DataTable 的列名与 XML-Tags 的关系...也许这就是重点?

提前谢谢你!

【问题讨论】:

    标签: c# xml dataset


    【解决方案1】:

    以下应该有效:

    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 数据之间保持一致。

    【讨论】:

    • 谢谢!这行得通。那真的很简单。表是父节点,最深的节点是列...
    猜你喜欢
    • 2011-04-10
    • 1970-01-01
    • 2014-04-19
    • 2011-08-16
    • 1970-01-01
    • 2010-12-09
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多