powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
25 сообщений из 50, страница 2 из 2
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32605627
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что я еще обнаружила, если загрузить все записи из датасета ,то в гриде отображается не одна запись для определенного клиента, а все записи всех клиентов.
Где нужно установить и что, чтобы в гриде отражались записи только для конкретного клиента
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32605642
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что я еще обнаружила, если загрузить все записи из датасета ,то в гриде отображается не одна запись для определенного клиента, а все записи всех клиентов.
Где нужно установить и что, чтобы в гриде отражались записи только для конкретного клиента

Имеется ввиду отображаются все адреса? И ответье на мой вопрос по Step

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32605731
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
установила и там -1, ничего не изменилось - ошибка
да, я имею ввиду все адреса
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32605817
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то мы по кругу начали ходить

установила и там -1, ничего не изменилось
какое значение становиться у klient_id при добавлении записи

Я бы сейчас вообще убрал DataRelation на таблицу адресов, чтобы constraint'ов было меньше.

P.S. Приводите полное сообщение ошибки


Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32605950
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Установила я в св-ве Step = -1, вытащила на форму поле для отображения klient_id ну и там отображается такое значение -1, при очередном добавлении -2 ...А после Update отображаются уже реальные значения (1086, 1087)
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32605966
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак с TKlient значит разобрались, теперь я так понял осталась проблема с адресами. При вводе нового клиента и добавление новых адресов выскакивает ошибка ? Какая?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32606046
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В гриде я добавила пока поле klient_id, чтобы видеть что туда заносится, так вот я занесла инфу в грид перехожу на др строку, значение в поле klient_id остается (null) и выдается такая ошибка:
Column klient_id does not allow nulls. Do you want to correct the value?
Если нажимаешь No, то изменения в гриде (занесение нового адреса) отменяется и все поля становятся = (null)
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32606129
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это как раз вы сейчас описываете грид с адресами?
DataRelation между клиентами и адресами установлен?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32606140
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да описываю именно грид.
DataRelation есть
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32606170
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Откройте xsd файл (ваш DataSet) выберите DataRelation между клиентом и адресами и поставьте UpdateRule = Cascade. Попробуйте.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32606230
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит так:
Я заново создала форму с помощью визарда и вот что получилось, что касается отображения адреса только для данного клиента - это все нормально (вопрос снисается), далее когда я заполняю грид, то значение в поле klient_id в гриде отображается тоже что и в текстбоксе (соот-но со всеми установленными св-вами -2), но теперь когда я перехожу на др строку выдаеся такое сообщение:

ForeignKeyConstraint qqq requires the child key values (-2) to exists in the parent table. Do you want to correct the value?

Что касается Update - Cascade, я это установила
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32607243
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можете прикрепить к своему сообщению (см. приложить файл ) xsd файл, или его часть касающая взаимодействую этих двух таблиц.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32608088
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32608093
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приложила файл
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32609781
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По xsd сравнительно все в порядке, некоторые мелочи по xsd:
1) Убрать у relation AcceptRejectRule = cascade , сделать none
2) TKlient не выставлен AutoincrementSeed , AutoIncrementStep хотя скорее всего это в моей версии вашего xsd.

Остается следующее: Так как добавление записи в TKlient и TAddress происходит в одной форме то у меня следующее предположение:

При добавлении записи в TKlient и редактировании TAddress, изменения фактически в TKlient ЕЩЕ не внесены (это можно проверить по DataRowVersion) По этому по DataRelation proposed значения мигрируются, но фактически они не существуют для FK constraint . Из - за чего и возникает исключение FK constraint.

Пока возможные решения:
1) Вызывать EncCurrentEdit или EndEdit перед переходом к TAddress. Здесь мне надо посмотреть код DataBindings.Add вашего textbox (достаточно посмотреть код для klient_id)
2) Отключать на время constraint, и включать их после окончательного редактирования клиента.

ИМХО вариант 1 предпочтительнее

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32612266
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
 1 ) Вызывать EncCurrentEdit или EndEdit перед переходом к TAddress. Здесь мне надо посмотреть код DataBindings.Add вашего textbox (достаточно посмотреть код для klient_id)

1. Не совсем поняла где отыскать DataBindings.Add. В св-вах для полей есть DataBindings, а далее Text или Tag или Advanced...
2. EncCurrentEdit или EndEdit для какого объекта?
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32613454
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка все еще актуальна, очень надеюсь на вашу помощь
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32613579
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения если не ясно выразился
Пусть textbox отображающий klient_id называется: txtKlient_id

Тогда меня интересует следующий код, txtKlient_id.DataBindings.Add(bla-bla-bla)
Вот это bla-bla-bla меня и интересует.
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32614573
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Me.editklient_id.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.objDS_Prodavec_New, "TKlients.klient_id"))
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32614600
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте положить кнопку на форму, на ней следующий код:
Код: plaintext
1.
Me.BindingContext(Me.objDS_Prodavec_New, "TKlients").EndCurrentEdit()
Теперь перед тем как переходить к адресам, нажмите эту кнопку.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32614704
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделала, все нормально, ошибки теперь не возникает :)
Спасибо огромное :)
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32614994
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Единственное что, я пока не нашла на какое событие повесить этот обработчик, не очтавлю же его на кнопке.
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32615662
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Единственное что, я пока не нашла на какое событие повесить этот обработчик, не очтавлю же его на кнопке.

Скорее всего я бы оставил это на кнопке, например кнопка называлась бы "сохранить клиента", "подтвердить ввод" или подобным образом.
Пока пользователь не щелкнет по кнопке не давать ему править адреса. Рядом можно сделать кнопку "Отменить клиента" - где использовать CancelCurrentEdit()

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32616973
irinka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема в том, что пользователь должно быть все максимально удобно и понятно. А что следует из надписи на кнопке Сохранить клиента? То, что пользователь решит, что он еще не завершил ввод инфы по клиенту и перейдет к гриду, а только потом нажмет на кнопку.
Я думаю, что должно быть автоматически для клиента, что-то типа того что как только он кликает на грид срабатывает этот обработчик, только к сожалению на повесив его на клик грида, обработчик не сыграл должным образом и ошибка выдалась вновь.
Так что я пока ищу событие, на кот можно его повесить
...
Рейтинг: 0 / 0
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
    #32617856
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
irinka
Проблема в том, что пользователь должно быть все максимально удобно и понятно. А что следует из надписи на кнопке Сохранить клиента? То, что пользователь решит, что он еще не завершил ввод инфы по клиенту и перейдет к гриду, а только потом нажмет на кнопку.

Ну мы всегда можем заставить пользователя действовать как надо, например дизеблить грид пока пользователь не подтвердит или не отменит изменения. При нажатии на кнопку "Сохранить клиента" можно раздизебливать грид, переводить на него фокус, тем самым давая понять пользователю что требуется вводить данные по адресам
Тогда назвать эту кнопку в этом случае можно, например "Перейти к вводу адресов" и т.д. накрутить можем все что угодно
irinka
Я думаю, что должно быть автоматически для клиента, что-то типа того что как только он кликает на грид срабатывает этот обработчик, только к сожалению на повесив его на клик грида, обработчик не сыграл должным образом и ошибка выдалась вновь.
Так что я пока ищу событие, на кот можно его повесить

Вообще при EndCurrentEdit строка проверяются на валидность(при использования typed DataSet и не только), и в случае некоретности введенных данных, например одно из полей не может быть null, возникнет исключение, которое конечно можно каким либо образом отработать но в любом случае придется вернуться к данным по клиенту.
ИМХО логичнее показать ошибку сразу по месту ее возникновения, а не узнать о некоректности ввода клиента, находясь в адресах.
Все выше мои соображения, поэтому не берите в голову :-)

В простейшем же случае, если обходиться без кнопок "сохранить" и "отменить" вам может подойдет вызов EndCurrentEdit сразу после AddNew(). Пройдет это или нет зависит от наличия каких либо дополнительных ограничений у таблицы клиент.

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


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