【问题标题】:Putting dataset fields in textboxes将数据集字段放入文本框中
【发布时间】:2009-11-30 19:04:06
【问题描述】:

我已成功将 xml 文件加载到数据集(我可以在数据网格中显示它),我想将它加载到几个文本框(大约 10 或 12 个)中。

xml 有大约 60 个字段,我不太熟悉获取它们的名称(尽管我知道我想要哪些)。

这就是我所拥有的:

Dim ds As New DataSet
ds.ReadXml(<PATH>)

一瞥xml的一部分:

<ide>   
 <cUF>35</cUF>   
 <cNF>623670848</cNF>
</ide>
<emit>
 <CNPJ>06949571000153</CNPJ> 
 <xFant>TSA</xFant> 

我想要(示例)
来自 IDE 的 cUF
来自 tsa 的 cFant

我有 txt1 和 txt2 作为文本框,我该怎么做才能得到它们?

【问题讨论】:

    标签: c# xml datagrid dataset asp.net


    【解决方案1】:

    如果您在数据集中获取数据,则可以通过几种方式获取信息。有推荐直接从 XML 中读取的方式,还有从数据集中获取的 table/row/column 方法。

    如果您在设计时知道列名:

    理论:

    txt1.Text = DS.Tables[<tablename>].Rows[<rowID>].ItemArray[<ColumnIndex>].ToString();
    

    练习:

    txt1.Text = DS.Tables["ide"].Rows[0].ItemArray[0].ToString();
    

    如果您在设计时不知道列名:

    理论:

    txt1.Text = DS.Tables(<tableID>).Rows(<rowID>).Item(<ColumnID>)
    

    练习:

    txt1.Text = DS.Tables[0].Rows[0].ItemArray[0].ToString();
    

    小心使用索引数字...有时它们会给您带来麻烦。

    【讨论】:

    • 哪种麻烦?喜欢获取不同类型的 xml 并以错误的方式显示?
    • 完全正确。我们之前不小心更改了 SQL 服务器上列的顺序。这将更改列索引的顺序并需要重新编码。一些 DBMS 系统会按照查询中的列指定的顺序返回数据,其他系统会按照内部指定的顺序返回列...所以在使用列索引时要注意此类问题。
    【解决方案2】:

    查看System.XML 命名空间,然后在 SelectSingleNode() 函数中使用正确的 XPath 表达式执行类似操作:

    private XmlDocument _doc = new XmlDocument();
    _doc.Load(HttpContext.Current.Request.MapPath("~/yourdocpath.xml"));
    XmlNode n = _doc.SelectSingleNode("ide/cuf");
    

    然后设置文本框:

    txt1.Text = n.InnerText;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-14
      • 1970-01-01
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      相关资源
      最近更新 更多