Страница: 1 |
Доброго времени суток. В Dataset выборка из таблицы на 5 полей. SELECT f1, f2, f3, f4, f5 FROM table. В DataGrid надо показать 3 поля (f1, f2, f3). Это я сделал. Теперь, если выделить какую-либо запись и просмотреть значение полей, допустим через MessageBox, по при указании полей f4, f5 выдает ошибку. Можно этот селект, если он не большой, выбрать в массив, и при работе с полями использовать его. А если он большой? К тому же если селест выбран, стало быть эти значения где-то сидят. Пробовал и через свойства ДатаГрида и ДатаСета-не получается. По Фреймворк СДК тоже не нашел. Кто-нибудь сталкивался с этим?
Так в том-то и дело, что если эти поля есть в запросе Select, но не включены в ДатаГрид, я не знаю как до них добраться. Здорово. Спасибо за помощь. Вроде все понятно, но попробовать это сделать я смогу только во вторник. Тогда же и напишу как получилось. До вторника не усидел и поехал на работу. Функция работает прекрасно и возвращает все значения СЕЛЕКТа. только в строке объявления аргумента функции пришлось убрать As DataGrid. Павел, еще раз спасибо. Страница: 1 |
Вопрос: Продолжение вопроса по DataSet и DataGrid
Добавлено: 06.12.03 15:56
Автор вопроса: sArutiun | ICQ: 153685354
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #1
Добавлено: 06.12.03 16:11
Как Вы получаете значение полей f4 и f5?
Номер ответа: 2
Автор ответа:
sArutiun
ICQ: 153685354
Вопросов: 11
Ответов: 42
Профиль | | #2
Добавлено: 06.12.03 16:44
Номер ответа: 3
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #3
Добавлено: 06.12.03 17:24
Оч просто. Функция для получения текущей DataRow в DataGrid:
Public Function GetCurrentRow(ByVal Grid As DataGrid) As DataRow
' Получаем связного и приводим его к его же типу
Dim cm As CurrencyManager = CType(Grid.BindingContext(Grid.DataSource, Grid.DataMember), CurrencyManager)
' Получаем перекрышку текущего ряда
Dim drv As DataRowView = CType(cm.Current, DataRowView)
' Наконец, из перекрышки высасываем САМ РЯД
Return drv.Row
End Function
Теперь делаем так:
Dim dr As DataRow = GetCurrentRow (Grid1)
MsgBox dr("f4")
MsgBox dr("f5")
Номер ответа: 4
Автор ответа:
sArutiun
ICQ: 153685354
Вопросов: 11
Ответов: 42
Профиль | | #4
Добавлено: 06.12.03 18:01
Номер ответа: 5
Автор ответа:
sArutiun
ICQ: 153685354
Вопросов: 11
Ответов: 42
Профиль | | #5
Добавлено: 07.12.03 07:43