Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Значения по умолчанию в DataGridView 
:(
    Опции темы
Dims
Дата 16.2.2011, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



У меня на сервер в поле есть значение по умолчанию (GETDATE()), однако, в отображение в DataSet и в DataGridView это никак не попало. Если я завожу новую запись и не ввожу ничего в это поле, то возникает ошибка, что поле не может содержать нулл (это так).

Как-то можно сделать, чтобы при невведении, в базу отсылалась команда присвоить значение по умолчанию? А, еще лучше, чтобы это значение было видно в форме.

Понятно, что можно вводить значение по умолчанию на клиенте.
PM MAIL   Вверх
MasterOfCode
Дата 16.2.2011, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

Репутация: 4
Всего: 27



Просто убери это поле из сформированного исерта. А на сервере в таблице поставь значение по умолчанию getdate


--------------------
user posted image
PM ICQ   Вверх
Dims
Дата 16.2.2011, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Ха, так мне надо чтобы и так и так можно было. Ведь у меня не вычисляемое поле, а значение по умолчанию. То есть, надо, чтобы если я ничего не ввёл, вводилось бы это значение, но это не должно меня лишать права что-то вводить.
PM MAIL   Вверх
jonie
Дата 16.2.2011, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



Ну надо модифицировать ваш Insert запрос (в редакторе даже можно) на подобный такому:
Код

INSERT INTO table(f1, dataField)
VALUES (@f1, ISNULL(@dataField, GETDATE()))


либо создать триггер подобный:
Код

CREATE TRIGGER trg ON table AFTER INSERT AS
BEGIN
SET NOCOUNT ON

  UPDATE table SET dataField= DEFAULT
    FROM INSERTED
    WHERE table.Id = INSERTED.Id AND INSERTED.dataField IS NULL

 SET NOCOUNT OFF
END



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Dims
Дата 17.2.2011, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Цитата(jonie @  16.2.2011,  22:11 Найти цитируемый пост)
Ну надо модифицировать ваш Insert запрос (в редакторе даже можно) на подобный такому:

А где хранится этот запрос, в каком элементе управления?

Добавлено через 2 минуты и 25 секунд
Я сделал задание значения по умолчанию в обработчике события DefaultValuesNeeded в DataGridView.

Но получилось некузяво: 

во-первых, таким образом не получается задать значения в тех полях, которые таблица не показывае

во-вторых, таким образом значение устанавливается только в случае добавления записи из таблицы; если запись добавлять ещё как-то, например, из навигатора, то значение не добавляется.

Маразм!

В общем, вопрос остаётся
PM MAIL   Вверх
jonie
Дата 17.2.2011, 15:24 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



Цитата(Dims @  17.2.2011,  14:42 Найти цитируемый пост)

А где хранится этот запрос, в каком элементе управления?


user posted image


Цитата(Dims @  17.2.2011,  14:42 Найти цитируемый пост)
Я сделал задание значения по умолчанию в обработчике события DefaultValuesNeeded в DataGridView.

Но получилось некузяво: 

во-первых, таким образом не получается задать значения в тех полях, которые таблица не показывае

во-вторых, таким образом значение устанавливается только в случае добавления записи из таблицы; если запись добавлять ещё как-то, например, из навигатора, то значение не добавляется.

в третьих это не серверное значение, а клиентское. А они, понятное дело, могут отличаться (например getdate()).


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Dims
Дата 17.2.2011, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Цитата(jonie @ 17.2.2011,  15:24)
user posted image

Блииин, спасибо, ведь помню, было же где-то, а сейчас почему-то во вторичный заголовок не догадался ткнуть.

А обработчик значений по умолчанию сделал так (чёрт, как глубоко закопались эти деятели!)

Код

        private void fKRemarkWorkBindingSource_AddingNew(object sender, AddingNewEventArgs e)
        {

            DataRowView rv = ((DataView)fKRemarkWorkBindingSource.List).AddNew();
            WorkTrackerSimple3DataSet.RemarkRow row = (WorkTrackerSimple3DataSet.RemarkRow) rv.Row;

            row.Stamp = DateTime.Now;

            e.NewObject = rv;

        }



Смущает, что новосозданный объект возвращается дважды: 1 раз при вызове AddNew, когда добавляется в список, а второй раз, когда кладётся в e.NewObject.

Но вроде работает.
PM MAIL   Вверх
Dims
Дата 17.2.2011, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Нет, работает хреново, с ошибками.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.1211 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.