Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / не могу организовать цикл Do while... / 12 сообщений из 12, страница 1 из 1
28.07.2004, 15:22
    #32625534
irinka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу организовать цикл Do while...
у меня простой вопрос:
был текст на VB6.0 такой:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
With MainDataEnvironment
    If .rscmdShabloni.RecordCount <>  0  Then
        .rscmdShabloni.MoveFirst
        Do Until .rscmdShabloni.EOF
            If DataCombo1.Columns("klient_id").Value = .rscmdShabloni.Fields("Prodavec_id") And DataCombo2.Columns("klient_id").Value = .rscmdShabloni.Fields("Pokup_id") Then
                Exit Do
            End If
            .rscmdShabloni.MoveNext
        Loop
    If .rscmdShabloni.EOF Then
        .rscmdShabloni.MovePrevious
        .rscmdShabloni.AddNew
        .rscmdShabloni.Fields("Prodavec_id") = DataCombo1.Columns("klient_id").Value
        .rscmdShabloni.Fields("Pokup_id") = DataCombo2.Columns("klient_id").Value
        .rscmdShabloni.Update
    End If
    
    Else
        If .rscmdShabloni.RecordCount =  0  Then
              .rscmdShabloni.AddNew
              .rscmdShabloni.Fields("Prodavec_id") = DataCombo1.Columns("klient_id").Value
              .rscmdShabloni.Fields("Pokup_id") = DataCombo2.Columns("klient_id").Value
              .rscmdShabloni.Update
        End If
    End If
End With

Соот-но использовались рекордсеты.
А теперь надо это в VB.Net.
Соот-но вопрос:
как написать вот такие строки:
Код: plaintext
Do Until .rscmdShabloni.EOF

Код: plaintext
.rscmdShabloni.MoveNext

как я поняла за место этой
Код: plaintext
 .rscmdShabloni.AddNew

можно написать так:
Код: plaintext
dataset1.Tables.Add
...
Рейтинг: 0 / 0
28.07.2004, 17:05
    #32625853
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу организовать цикл Do while...
авторDo Until .rscmdShabloni.EOF

Это типо прочитать DataSet до конца???
...
Рейтинг: 0 / 0
28.07.2004, 17:08
    #32625862
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу организовать цикл Do while...
dataset1.Tables.Add добавит таблицу а не строку.


Код: plaintext
dataset1.Tables[ 0 ].Rows.Add



Код: plaintext
1.
2.
3.
4.
5.
dim dr as DataRow 


For each dr in dataset1.Tables[ 0 ].Rows

next


вроде так.

Magnus
...
Рейтинг: 0 / 0
28.07.2004, 17:13
    #32625875
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу организовать цикл Do while...
Если да, то...
Код: plaintext
1.
2.
3.
For i as integer= 0  to dataset.tablename.rows.count - 1 
...
Next
...
Рейтинг: 0 / 0
28.07.2004, 18:50
    #32626081
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу организовать цикл Do while...
Итераторы обычно гораздо быстрее перечисления по индексам.

Magnus
...
Рейтинг: 0 / 0
28.07.2004, 19:15
    #32626107
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу организовать цикл Do while...
авторИтераторы обычно гораздо быстрее перечисления по индексам.

ForEach - я так понимаю, это интератор... если ДА, то на сколько быстрее?
...
Рейтинг: 0 / 0
28.07.2004, 19:23
    #32626120
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу организовать цикл Do while...
интератор читать, как итератор (извиняюсь...)
И ещё вопрос КАК В ТАКОМ ЦИКЛЕ ОБРАТИТЬСЯ К ОПРЕДЕЛЁННОЙ СТРОКЕ???
...
Рейтинг: 0 / 0
28.07.2004, 20:02
    #32626157
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу организовать цикл Do while...
Да это итератор. Разница в скорости особо заметна на больших обьемах.
Но даже в других случаях по возможности рекомендуется пользоватся таким методом.

КАК В ТАКОМ ЦИКЛЕ ОБРАТИТЬСЯ К ОПРЕДЕЛЁННОЙ СТРОКЕ???
просто dr - это и будет каждый раз следующая строка. Идет перебор строк из коллекции.

Magnus
...
Рейтинг: 0 / 0
28.07.2004, 20:16
    #32626163
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу организовать цикл Do while...
Thanks, учтём на будущее...
...
Рейтинг: 0 / 0
28.07.2004, 20:46
    #32626179
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу организовать цикл Do while...
irinka
Do Until .rscmdShabloni.EOF
.rscmdShabloni.MoveNext


Сейчас такие конструкции не поддерживаются, различные Next, Prev, Top, Bottom - можете написать сами, используя BindingContext формы.
В форме вообще приходиться работать с BindingContext. Так в самом DataSet position ни где не фиксируется, в этом заключается одно из преимуществ ADO.NET.

А код можно переделать по другому, только объясните подробнее что требуется

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
29.07.2004, 11:03
    #32626630
irinka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу организовать цикл Do while...
мне нужно просмотреть строки в таблице...
если есть запись, в которой значение из поля1 совпадает со значением из комбабокса1 на форме и значение из поля2 совпадает со значением из комбабокса2 на форме, то тогда следующая форма (она не совсем следующая, через одну) загрузится со значениями в некоторых полях из найденной строки, а если нет вообще ничего подобного в таблице, тогда добавляется код покупателя и продавца, а в форме (кот через одну) занесутся остальные параметры и сохранятся в таблицу как новая запись
...
Рейтинг: 0 / 0
29.07.2004, 11:41
    #32626754
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не могу организовать цикл Do while...
мне нужно просмотреть строки в таблице...

Я так понял вас интересуют данные непосредственно из БД, а не загруженные в DataTable?

Если да, то тут BindingContext вообще не нужен, можно написать ХП, которая принимает в качестве параметров значения ComboBox'ов.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / не могу организовать цикл Do while... / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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