Страница: 1 |
Страница: 1 |
Вопрос: Чтение Dataset, полученного из запроса XML
Добавлено: 30.03.11 17:02
Автор вопроса: Kundor | ICQ: 39341479
Привет народ!
Подскажите с такой проблемой. Есть сайт, с него запросом читаю XML в DataSet.
Dim myHttpWebResponse As HttpWebResponse = myHttpWebRequest.GetResponse()
Dim DS1 As DataSet = New DataSet()
Dim sCom = "select * from response"
Dim Conn1 As New OleDb.OleDbConnection
Dim Adapt1 As New OleDb.OleDbDataAdapter(sCom, Conn1)
Dim response_cmd As New OleDb.OleDbCommand
response_cmd.CommandText = "select * from response"
DS1.ReadXml((myHttpWebRequest.GetResponse()).GetResponseStream())
*тут датасет уже нормально содержит несколько таблиц с данными, по которым мне и надо ходить.
Adapt1.SelectCommand = response_cmd
Adapt1.Fill(DS1)
тут выходит сообщение что не инициализирован Connection. понимаю что его надо инициализировать, но как?
простого объявления его как новый объект видно недостаточно.
конечная цель - обычными select-ами просто читать данные из xml (он логически выглядит как записи базы данных).
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #1
Добавлено: 30.03.11 18:38
> Dim Conn1 As New OleDb.OleDbConnection
В конструкторе нужно указать строку подключения.
Однако я не понимаю зачем здесь вообще OleDB нужен.
После ReadXml в DataSet попадают данные и ты можешь с ними работать. DataAdapter здесь уже не нужен.
Еще есть метод DataSet.ReadXml, который может в т.ч. скачать файл по http (указать в качестве аргумента "http://........." - тебе не нужно будет делать HttpWebRequest (при условии если все делается простым get запросом)
Номер ответа: 2
Автор ответа:
Kundor
ICQ: 39341479
Вопросов: 5
Ответов: 2
Профиль | | #2
Добавлено: 31.03.11 10:10
DataAdapter и OleDb я прицепил только для того что б иметь возможность запрашивать данные из датасета запросами select, если это можно сделать это без адаптера - не подскажете - как именно?
webrequest я использовал так как запрос надо пропускать через прокси и по ssl.
Номер ответа: 3
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #3
Добавлено: 31.03.11 17:51
WebClient может работать через прокси и по https.
DataAdapter и OleDb я прицепил только для того что б иметь возможность запрашивать данные из датасета запросами select, если это можно сделать это без адаптера - не подскажете - как именно?
DataAdapter запрашивает данные из базы данных (напримре, акцесовская база данных). DataSet - это не база данных, а просто набор данных, находящийся в памяти.
С ним нет необходимости использовать SQL (хотя есть возможность делать запросы, но там другой синтаксис).
Если тебе нужно просто перебрать все данные, то в DataSet берешь нужную DataTable и проходишь по коллекции Rows.
For Each row As DataRow In dataSet.Tables("Users"
Console.WriteLine(row("UserName")
Next
ПРимерно так. Писал прямо тут, поэтом мог где-то ошибиться, но принцип такой.
Если хочешь делать запросы для уточнения результатов, которые нужно перебрать, смотри метод DataTable.Select
Номер ответа: 4
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #4
Добавлено: 01.04.11 10:48
WebClient может работать через прокси
а через socks?
Номер ответа: 5
Автор ответа:
Kundor
ICQ: 39341479
Вопросов: 5
Ответов: 2
Профиль | | #5
Добавлено: 04.04.11 14:04
спасиб, методами datatable получается. жалко что нет возможности просто из xml вытаскивать данные именно sql-запросами, имхо это гибче всего...