Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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.

Kundor пишет:
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
Artyom пишет:
WebClient может работать через прокси

а через socks?

Ответить

Номер ответа: 5
Автор ответа:
 Kundor



ICQ: 39341479 

Вопросов: 5
Ответов: 2
 Профиль | | #5 Добавлено: 04.04.11 14:04
спасиб, методами datatable получается. жалко что нет возможности просто из xml вытаскивать данные именно sql-запросами, имхо это гибче всего...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам