Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
Проблема вот в чем... есть форма, основанная на таблице (например Клиенты). Таблица Клиенты имеет поле klient_id кот автоматически проставляется при заполнении других полей строки. Соот-но пользователь на форме не должен заполнять поле klient_id, но если его просто не заполнить, значение останется 0 (что не допускается) Что можно сделать??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2004, 15:15 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
Неправда, если в таблице полю присвоено значение автономер, то и на форме там будет появлятся номер, кот появляется в таблице Вообще то пользователю незачем видеть эьо поле вообще, его просто не надо показывать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2004, 15:51 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
я это поле временно сделала видимым и в нем почему-то стоит 0 при добавлении. Я видимо что-то не доделала в самом приложении, потому как в базе проблем нет, у меня сейчас на ней тоже приложение только на VB6.0 работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2004, 15:56 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
я только не пойму что не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2004, 15:57 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
Если вы используете Identity в MS SQL, то должны ввернуть последний сформированный Identity, и обновить соответствующее поле в DataSet. Насколько я помню Data-Wizard в VS.NET, правильно делает код для этого случая. В частности проставляет в Insert команде, select @@identity или select @@scope_identity. Теперь действия до отправления изменений на сервере, PK не допускает Null значений, для этого в DataTable, в Column который является PK проставляется свойство AutoIncrement = True, AutoSeed = -1 (во избежании конфликтов лучше двигаться в отрицательную сторону) При использовании Typed DataSet студия тоже правильно заполняет (должна) заполнять эти свойства по схеме данных. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2004, 16:01 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
Если вы покажете код своих DataAdapter, а также скажете typed DataSet вы используете или нет, то можно поговорить по конкретнее. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2004, 16:03 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
SqlDataAdapter1: SELECT klient_id, klient_name, klient_R_S, klient_K_S, klient_BIK, klient_bank, klient_INN, klient_OKONH, klient_OKPO, klient_komments, klient_type, klient_manager, Klient_date, director, buhgalter FROM TKlients SqlDataAdapter2: SELECT adress_id, klient_id, adress, klient_phone, adress_komments FROM TAdress Что такое DataSet я знаю. А что такое typed DataSet ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2004, 17:08 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
Я посмотрела в CommandText действительно стоит команда Insert...klient_id=@@identity Но почему-то при Update выдается ошибка, что невозможно вставить так как значение = 0 у klient_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2004, 17:23 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
На форме в виде TextBox поля для ввода информации по клиенту в таблицу TKlinets и есть еще DataGrid (кот основывается на подчиненной талице TAdress). Эти две таблицы связаны по klient_id. Соот-но когда я заполняю поля грида выдается эта ошибка нулевое значение klient_id. Как можно передать текущее значение кода клиента? Это ommandText для SqlDataAdpter2: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2004, 17:40 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
Typed DataSet - типизированный датасет, судя по всему вы его как раз используете. Тогда посмотрите следующие свойства у столбца TKlient.klient_id AutoIncrement AutoIncrementSeed Для этого откройте схему вашего DataSet, выберите таблицу TKlient и столбец klient_id. Далее см. указанные свойства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2004, 19:52 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
св-ва, кот вы указали мне я установила... ошибка пока остается актуальной, поэтому у меня все еще вопрос, как указать в гриде (основанной на Tadress) текущее значение klient_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2004, 10:25 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
irinka св-ва, кот вы указали мне я установила... ошибка пока остается актуальной, поэтому у меня все еще вопрос, как указать в гриде (основанной на Tadress) текущее значение klient_id После того как вы установили свойства (и что вы установили) в TKlient значения по klient_id формируются? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2004, 10:29 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
в схеме датасета для TKlients поля klient_id св-ва AutoIncrement=true AutoIncrementSeed=-1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2004, 10:38 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
Sa в TKlient значения по klient_id формируются? Например в DataGrid когда вы добавляете запись в DataTable TKlient? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2004, 11:05 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
Дело в том, что когда открывается форма на добавление в базе в таблице TKlients появляется строка пустая строка, но с кодом клиента. На форме же когда я заполняю данными и обновляю строкой UpdateDataSet(), в базе ничего не отражается. Что касается грида, то заполняя одно из полей грила и при переходе на др строку выдается известное вам сообщение о том, что нельзя нулевое значение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2004, 15:28 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
irinka Дело в том, что когда открывается форма на добавление в базе в таблице TKlients появляется строка пустая строка, но с кодом клиента. На форме же когда я заполняю данными и обновляю строкой UpdateDataSet(), в базе ничего не отражается. Давайте попорядку. И вначале следует разобраться в клиентском приложении 1) TKlients теперь автоматически формирует klient_id? (-1, -2 , -3 и т.д) 2) метода UpdateDataSet() в DataSet нет, если он у вас в форме, то привидите его код. В любом случае до обновления базы данных еще рано говорить. 3) Опишите точную последовательность действий, что за чем и как происходит, в общих словах не понятно, что отражается а что нет. В каких гридах, какие данные привязаны к этим гридам, какие формы, что на этих формах и т.д. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 08:27 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
1. TKlients теперь автоматически формирует klient_id? Формирует, но надо учитывать, что приложение с теми функциями, что я сейчас собираюсь воспроизвести на VB.Net уже использовалось раньше на VB6.0, соот-но база не пустая, соот-но не нужно делать св-во ...Seed=-1. 2. С помощью Wizard я создала эту форму и на ней сформировалась кнопка Update с таким обработчиком: ... Try UpdateDataSet() Catch ... 3. Есть форма, на ней TextBox1 - klient_name ... TextBoxn - Type_klient (klient_id - для пользователя не видно) Все текстбоксы основаны на полях из таблицы TKlients Ниже расположен грид (основанный на TAdress) TAdress (klient_id, adress_id, adress, phone, komments) В гриде я отображаю только последние три поля. Сначало заполняю TextBox - ы (причем обязательно для заполнения только klient_name) Потом перехожу в грид, например заполнила только адрес и перехожу на др строку как выдается сообщение, что klient_id не может быть равно 0 ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 10:39 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, не увидела сразу... По поводу пункта 2: Выше описано: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 10:53 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
irinka 1. TKlients теперь автоматически формирует klient_id? Формирует, но надо учитывать, что приложение с теми функциями, что я сейчас собираюсь воспроизвести на VB.Net уже использовалось раньше на VB6.0, соот-но база не пустая, соот-но не нужно делать св-во ...Seed=-1. Это псевдозначения, при Update эти значения использоваться не будут. А вот Identity возвращаться после Update обратно в DataSet должен и это уже будут настоящие значения поля klient_id. Поэтому наличие Seed = -1 обязательно (В Seed стоит минус один поэтому конфликта уже с существующими загруженными в DataSet записями не будет) irinka 2. С помощью Wizard я создала эту форму и на ней сформировалась кнопка Update с таким обработчиком: ... Try UpdateDataSet() Catch ... Ну тут wizard не должен подвести, там скорее всего стоит DataAdapter.Update() и после DataSet.AcceptChanges(), ну и любит он Merge() в принципе туда не вмешиваемся. irinka 3. Есть форма, на ней TextBox1 - klient_name ... TextBoxn - Type_klient (klient_id - для пользователя не видно) Все текстбоксы основаны на полях из таблицы TKlients Ниже расположен грид (основанный на TAdress) TAdress (klient_id, adress_id, adress, phone, komments) В гриде я отображаю только последние три поля. Сначало заполняю TextBox - ы (причем обязательно для заполнения только klient_name) Потом перехожу в грид, например заполнила только адрес и перехожу на др строку как выдается сообщение, что klient_id не может быть равно 0 ... Понятно срабатывает constraint и все правильно, поэтому вопрос после того как вы установили AutoIncrementSeed = -1, и AutoIncrement = True исключение продолжает возникать? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 10:57 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
Sa Понятно срабатывает constraint и все правильно, поэтому вопрос после того как вы установили AutoIncrementSeed = -1, и AutoIncrement = True исключение продолжает возникать? Да, продолжает возникать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 11:12 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
Я понимаю, почему возникает эты ошибка. Потому что стоит значение 0. Я не понимаю почему там сстоит 0. Создавалось Wizard - ом и не понятно почему когда я начинаю заполнять грид в таблицу TAdress не заносится только что созданные klient_id из TKlients ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 11:15 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
только что созданный klient_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 11:15 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
Вот еще что... Я заполнила TextBox1 (klient_name) и нажала кнопку Update после чего в TKlients создалась строка с заполнененным полем klient_id, однако поле klient_name имело значение null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 11:25 |
|
||
|
Пользователь не заполняет поле на форме (так как оно проставляется автоматически благодаря установленному св-ву в базе SQL Server)
|
|||
|---|---|---|---|
|
#18+
Последний вопрос снимается, так как я обнаружила что для этого поля не было прописана связь с датасетом Мне только не понятно почему я создавала Wizard - ом и нигде ничего не прописалось :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 11:28 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=32602143&tid=1438751]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 369ms |

| 0 / 0 |
