Помещение полей набора данных в текстовые поля - PullRequest
0 голосов
/ 30 ноября 2009

Я успешно загрузил файл 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> 

я хочу (пример)
CUF от IDE
cFant от tsa

У меня есть текстовые поля txt1 и txt2, что мне сделать, чтобы получить их?

Ответы [ 2 ]

1 голос
/ 01 декабря 2009

если у вас есть данные в наборе данных, вы можете получить информацию несколькими способами. Есть способ, по которому flesh рекомендует читать его непосредственно из 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();

осторожно используйте индексированные числа, хотя ... иногда они могут привести к неприятностям.

1 голос
/ 30 ноября 2009

Просмотрите пространство имен System.XML , а затем сделайте что-то подобное, используя правильное выражение XPath в функции SelectSingleNode ():

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

, а затем установить текстовое поле:

txt1.Text = n.InnerText;
...