powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Вконец запутался с инициализацией добавляемой строки
14 сообщений из 14, страница 1 из 1
Вконец запутался с инициализацией добавляемой строки
    #33798485
sysadm2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.Есть сетка, она привязана на BindingSource - при вводе новой строки помеченной звездочкой у нее выпрыгивает:
Код: plaintext
gr1_RowsAdded(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowsAddedEventArgs) Handles gr1.RowsAdded 

2.Есть BindingSource, он привязан уже непосредственно к DataSet. При нажатии плюсика на нем соответсвенно выпрыгивает:
Код: plaintext
BS1_AddingNew(ByVal sender As Object, ByVal e As System.ComponentModel.AddingNewEventArgs) Handles BS1.AddingNew

3.Фишка в том, что при добавлении новой строки она должна появляться в сетке НЕ ПУСТАЯ, А С ПРОИНИЦИАЛИЗИРОВАННЫМИ ПОЛЯМИ.

Так вот - собственно проблема от которой дымится и скоро просто взорвется голова:

1.В BS1_AddingNew пишу:
Код: plaintext
1.
2.
        Dim NewOneRow As DataRow = PJ_DS1.PJ_Error.NewRow
        ............. инициализирую строку .........
        e.NewObject = NewOneRow
- ХОПА, пишет, что добавленный тип записи НЕ совпадает. С чем он должен совпадать кроме строки таблы, к которой привязан?

2. Ладно, пробую без плюсика на БиндингНавигаторе - хотя бы просто в сетке добавить. Пишу в gr1_RowsAdded:
Код: plaintext
1.
        PJ_DS1.PJ_Error(e.RowIndex)=.... и так далее
- но записи e.RowIndex ЕЩЕ НЕТ в момент датасете gr1_RowsAdded и прога, конечно падает.

3.Ладно, пробую еще по-другому в gr1_RowsAdded:
Код: plaintext
1.
2.
        Dim NewOneRow As DataRow = PJ_DS1.PJ_Error.NewRow
        .......... инициализирую свою добавляемую строку....
        PJ_DS1.PJ_Error.Rows.Add(NewOneRow)

И вот тут-то добавляет в сетку и ДатаСет правильную инициализированную строку, но ДОПОЛНИТЕЛЬНО, а кроме нее добавляет еще и вторую - ПУСТУЮ.
...
Рейтинг: 0 / 0
Вконец запутался с инициализацией добавляемой строки
    #33801470
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysadm2000
НЕ ПУСТАЯ, А С ПРОИНИЦИАЛИЗИРОВАННЫМИ ПОЛЯМИ.

проинициализированная чем?

Код: plaintext
 uid  =  S a

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Вконец запутался с инициализацией добавляемой строки
    #33804541
sysadm2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строку, добавляемую в сетку надо инициализировать начальными значениями. Ну с начальной инициализацией (как данных в БиндингСорсе, так и данных в сетке) - я более ли менее разобрался. Но до этого я всегда писал проги, где запрещал ПРЯМОЕ добавление данных в сетке. Вот это первая моя прога, в которой я разрешил ПРЯМОЕ добавление по сетке БЕЗ ВИРТУАЛЬНОГО РЕЖИМА СЕТКИ.

Продобился я над этой прогой в понедельник и вторник (ну а начинал думать на эту тему еще в пятницу) - но так ничего путного так и не вышло. Так и не получилось управлять сеткой, в которой записей может быть БОЛЬШЕ, чем в биндинг сорсе.

Вообще если бы кто-нидь поделился, как это делается - или хорошой полномасштабный пример посмотреть на добавление данных в связанной сетке без виртуального режима.... Те когда в сетке данных больше чем в БиндингСорсе - как удается добиться, чтоб сетка не давала лишних пустых строк - (это главная проблема), чтоб добавляемые строки (еще не существующие в БиндингСорсе) были в сетке четко сортированы - ну это меньшая проблема - тут в принципе путь решения ясен...

Ну а так прога вышла ничего, может даже кому сгодится, если пользоватся добавлением только через БиндингНавигаторе. Инструкция по запуску на первой форме инсталляции.
...
Рейтинг: 0 / 0
Вконец запутался с инициализацией добавляемой строки
    #33804544
sysadm2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вконец запутался с инициализацией добавляемой строки
    #33804546
sysadm2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вконец запутался с инициализацией добавляемой строки
    #33804547
sysadm2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вконец запутался с инициализацией добавляемой строки
    #33804555
sysadm2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вконец запутался с инициализацией добавляемой строки
    #33804556
sysadm2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вконец запутался с инициализацией добавляемой строки
    #33804558
sysadm2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вконец запутался с инициализацией добавляемой строки
    #33806257
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysadm2000
Строку, добавляемую в сетку надо инициализировать начальными значениями.

для этого существует свойство DefaultValue у Column

прогу вашу посмотрю накакануне.

Код: plaintext
 uid  =  S a

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Вконец запутался с инициализацией добавляемой строки
    #33806723
sysadm2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DefaultValue??? Не представляю себе как его применить... Это ж по-моему статической свойство, чуть ли не дизайн-таймовое....Разве можно переопределять его на ходу? И в момент какого события его можно переопределить?

Я реализовал УМАЛЧИВАЕМОЕ значение поля:
1.При добавлении данных в БиндингСорсе - как значение ДатаРоуВью.
2.При добавлении данных через сетку (когда данные в ней разбегаются с данными в БиндигнСорсе) - в событии DefaultValuesNeeded как значение DataGridViewRow.

Но... Это как-то проехали...
Другое меня беспокоит - не пойму как упралять строками сетки при добавлении в нее данных не через БиндингСорсе, а непосредственно штрычками юзверя в строку со звездочкой....
...
Рейтинг: 0 / 0
Вконец запутался с инициализацией добавляемой строки
    #33808957
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysadm2000
как упралять строками сетки при добавлении в нее данных не через БиндингСорсе, а непосредственно штрычками юзверя в строку со звездочкой....

что значит управлять?

Код: plaintext
 uid  =  S a

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Вконец запутался с инициализацией добавляемой строки
    #33809205
sysadm2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вы эту прогу попробовали поставить?
Разницу видите между прямым добавлением данных в источник данных и в саму сетку - когда данные в сетке ОТЛИЧАЮТСЯ от данных в ее источнике данных?
Видите как сетка рисует ЛИШНИЕ строки?
Причем иногда они появляются выше, а иногда ниже вставляемой... Даже не могу уловить закономерность когда это происходит...
Насколько я могу понять - виртуальный режим сетки и придуман для того, чтобы УПРАВЛЯТЬ сеткой в том случае, когда данные в ней отличаются от данных в источнике данных, на которых она привязана.
Это различие можно и отменить, если запретить юзеру ПРЯМУЮ ставку данных в сетку МИНУЮ источник данных - я так и делал ВСЕГДА ДО СИХ ПОР.
Это моя первая прога я РАЗРЕШЕНИЕМ ПРЯМОЙ ВСТАВКИ ДАННЫХ В СЕТКУ - и она работает, но.....
бесят лишние строки, выпрыгивающие самостоятельно и которые я не могу запретить...
...
Рейтинг: 0 / 0
Вконец запутался с инициализацией добавляемой строки
    #33815739
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysadm2000
Ну вы эту прогу попробовали поставить?

нет не устанаваливал, потому что
1) необходимо разворачивать бд - зачем т.к. проблема не в ней!
2) нет исходников, тогда что смотреть? - как глючит программа?

Сделайте пример без базы данных или с локальной бд access. уберите все лишнее, оставьте только проблемный код, прикрепите solution без exe файла, к сообщению -> тогда можно смотреть.

P.S. Обычно при создании тестового приложения люди уже решают свою проблему. Удачи!

Код: plaintext
 uid  =  S a

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Вконец запутался с инициализацией добавляемой строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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