powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / массив datarow для dataset.merge
22 сообщений из 22, страница 1 из 1
массив datarow для dataset.merge
    #32495947
hmsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите как составить массив datarow из выделенных строк в datagrid я хочу составив массив
передать их вдругой dataset, ещё подробнее есть 2 формы в 1ой форме в гриде список строк - выделяем
несколько строк, и по кнопке эти записи нужно передать в грид 2ой формы.
так вот как составить массив datarow выделенных в гриде строк?
спасибо.
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32495992
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На VB.NET\r
/topic/82728&hl=dataview
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32497634
hmsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как быть с UltraGrid ? ведь у него нет свойства isSelect .
делаю так
Dim arrsel() As ArrayList
arrsel = Me.UltraGrid.Selected.Rows.All
но ругается нельзя преобразовать тип , тип там я посмотрел UltraGridDataRow кажется и dataset.merge() не принимает такой тип
как же мне из UltraGrid получить массив выделенных строк?
памагите!
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32497790
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не гадать привидите описание класса UltraGridDataRow
Код: plaintext
1.
UltraGridDataRow[] rows = this.UltraGrid.Selected.Rows.All;


И вы уверены что этот класс называется UltraGridDataRow а не UltraGridRow?
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32500898
Фотография Alexes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если речь идёт о компоненте от Infragistics, то это вам поможет (при условии, что grid связан с DataTable):
Код: plaintext
1.
2.
3.
4.
5.
SelectedRowsCollection selRows = ultraGrid1.Selected.Rows;
DataRow[] dataRows = new DataRow[selRows.Count];
for(int i =  0 ; i < selRows.Count; i++)
{
	dataRows[i] = ((DataRowView) selRows[i].ListObject).Row;
}
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32507548
hmsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexes and ALL
не получается этот пример сделать на vb.net, а надо
помогите!
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32507582
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример alexes на VB.NET (проверить негде):
Код: plaintext
1.
2.
3.
4.
5.
6.
Dim selRows as SelectedRowsCollection  = ultraGrid1.Selected.Rows
Dim dataRows as DataRow = New DataRow(selRows.Count)
Dim i as integer =  0 
For i =  0  to selRows.Count -  1 
    dataRows(i) = CType(selRows(i).ListObject).Row, DataRowView)
End Next

Где именно ругается?
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32507650
hmsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на
Dim dataRows as DataRow = New DataRow(selRows.Count)
пишет
'System.Data.DataRow.Protected Sub New(builder As System.Data.DataRowBuilder)' is not accessible in this context because it is 'Protected'.
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32507663
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поменять эту строчку на:
Dim dataRows(selRows.Count) As System.Data.DataRow
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32507694
hmsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теперь
dataRows(i) = CType((selRows(i).ListObject).Row, DataRowView)
пишет не может конвертить datarow в DataRowView
Value of type 'System.Data.DataRowView' cannot be converted to 'System.Data.DataRow'.
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32508148
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что значит в торопях естественно не может конвертнуть, делай так:
Код: plaintext
1.
dataRows(i) = CType(selRows(i).ListObject, DataRowView).Row
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32508529
hmsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо!
теперь дальше
делаю датасет и хочу методом Merge его заполнить, чтобы связать с таблицей
Dim ds As DataSet
ds.Merge(dataRows)
ругается - Object reference not set to an instance of an object.
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32508540
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
Dim ds As New DataSet()
ds.Merge(dataRows)
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32508565
hmsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sa прости меня, ещё вопрос
вот целиком моя процедура
Dim selRows As Infragistics.Win.UltraWinGrid.SelectedRowsCollection = UltraGrid1.Selected.Rows
Dim dataRows(selRows.Count) As System.Data.DataRow
Dim i As Integer
For i = 0 To selRows.Count - 1
dataRows(i) = CType(selRows(i).ListObject, DataRowView).Row
Next
Dim dsRTY As New DataSet

dsRTY.Merge(dataRows)
Me.UltraGrid2.DataSource = dsRTY
на выделенную строку пишет - 'rows[2]' argument cannot be null.
смотря сколько строк выделил такой и rows[...]
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32508701
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim selRows As Infragistics.Win.UltraWinGrid.SelectedRowsCollection = UltraGrid1.Selected.Rows
MsgBox(selRows.Count) ' Сколько записей выделенно
Dim dataRows(selRows.Count) As System.Data.DataRow
Dim i As Integer
For i =  0  To selRows.Count -  1 
dataRows(i) = CType(selRows(i).ListObject, DataRowView).Row
Next
Вопервых отладчиком изучи подробно полученный массив dataRows что он из себя представляет то ли ты получил что хотел

Продолжаем дальше:
Код: plaintext
1.
2.
3.
Dim dsRTY As New DataSet
dsRTY.Merge(dataRows)
Me.UltraGrid2.DataSource = dsRTY
Меняем на
Код: plaintext
1.
2.
3.
4.
Dim dsRTY As DataSet
dsRTY = ds.Clone()
dsRTY.Merge(dataRows)
Me.UltraGrid2.DataSource = dsRTY
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32508844
hmsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dsRTY = ds.Clone()
непонятно какой ds
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32508906
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ds - твой исходный DataSet как он у тебя называется я не знаю
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32509232
hmsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
огромное спасибо! работает!
Dim dataRows(selRows.Count - 1 ) As System.Data.DataRow
размерность больше была :-)
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32509303
hmsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как мне заполнить с помощью merge
dataset и UltraGrid2 находящиеся на другой форме?
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32509324
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> а как мне заполнить с помощью merge
dataset и UltraGrid2 находящиеся на другой форме?

Поместить dataSet и UltraGrid на другую форму и обратиться в простом случае напрямую: form1.UltraGrid2, form1.myDataSet, где form1 экземпляр класса вашей формы.
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32509423
hmsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как обратится к dataset и гриду на другой подчиненной форме?
делаю так, ругается:

Dim myForm As Form
Dim myParent As FormGL = CType(Me.MdiParent, FormGL)
For Each myForm In myParent.MdiChildren()
If myForm.Name = "FormNewSd" Then
myForm.dsNewSD = dsSD.Clone()
myForm.dsNewSD .Merge(dataRows)
myForm.UltraGrid1 .DataSource = dsNewSD
End If
Next
...
Рейтинг: 0 / 0
массив datarow для dataset.merge
    #32509440
hmsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все допер!
Dim myForm As Form
Dim myParent As FormGL = CType(Me.MdiParent, FormGL)
For Each myForm In myParent.MdiChildren()
If myForm.Name = "FormNewSd" Then
CType(myForm, FormNewSd).dsNewSD = dsSD.Clone()
CType(myForm, FormNewSd).dsNewSD.Merge(dataRows)
CType(myForm, FormNewSd).UltraGrid1.DataSource = CType(myForm, FormNewSd).dsNewSD
End If
Next
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / массив datarow для dataset.merge
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]