powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запись null в поле DateTime
14 сообщений из 14, страница 1 из 1
Запись null в поле DateTime
    #32964147
AlexanD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БД Access, необходимо программно перезаписать в переменную типа DateTime "пустое" значение.

Пробывал записывать System.DBNull.Value - не работает.

Помогите программисту любителю... как это сделать?
...
Рейтинг: 0 / 0
Запись null в поле DateTime
    #32964211
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чем перезаписываешь - адаптером или командой ?
...
Рейтинг: 0 / 0
Запись null в поле DateTime
    #32964637
AlexanD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавляю новую запись в типизированыый датасет, в качетсве одного из параметров нужно передать поле типа DataTime. Если у поля нет значения, возникает ошибка при Convert.ToDateTime(...)
...
Рейтинг: 0 / 0
Запись null в поле DateTime
    #32965013
Bigheadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не очень понял связь между СУБД и записью в _переменную_. Переменная типа DateTime может содержать либо валидное значение даты, либо null.
Либо приведите кусок кода и уточните вопрос.
...
Рейтинг: 0 / 0
Запись null в поле DateTime
    #32965931
Dilation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BigheadmanНе очень понял связь между СУБД и записью в _переменную_. Переменная типа DateTime может содержать либо валидное значение даты, либо null.
Либо приведите кусок кода и уточните вопрос.

Неверно, попробуй написать DateTime d = null;,
ошибка - Cannot convert null to 'System.DateTime' because it is a value type .
...
Рейтинг: 0 / 0
Запись null в поле DateTime
    #32966085
ooops
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexanDПробывал записывать System.DBNull.Value - не работает.Как ты пробовал и что значит "не работает" ?

В такой постановке - вопрос некорректен. Вместо того, чтобы тебе помогли найти решение, приходится еще и голову ломать над твоими шарадами.

Решение:
Попробовал записать System.DBNull.Value и все прекрасно работает. Также, как и другие (как минимум 3 штуки для типизированного DataSet) варианта.
...
Рейтинг: 0 / 0
Запись null в поле DateTime
    #32966123
Bigheadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНеверно, попробуй написать DateTime d = null;,
ошибка - Cannot convert null to 'System.DateTime' because it is a value type.

Да, проглючило меня что-то.
...
Рейтинг: 0 / 0
Запись null в поле DateTime
    #32966541
AlexanD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот код:


Сначала пробывал так....
this.dsSchooll.PARENTS - типизированный датасет с таблицей PARENTS
parentrow - типа DataRow, из которого беру значение

//Добавляем в типизированный датасет новую запись,
//в качетсве параметров объекты типа string и DateTime

this.dsSchooll.PARENTS.AddPARENTSRow( prow,
parentrow["MOTHER_FIRSTNAME"].ToString(),
parentrow["MOTHER_SECNAME"].ToString(),
Convert.ToDateTime(parentrow["MOTHER_BITHDAY"]),
parentrow["MOTHER_SOTTEL"].ToString());

При выполнении функции, если поле parentrow["MOTHER_BITHDAY"] пустое, то возникает ошибка:
Object cannot be cast from DBnull to other types


Попробывал корректировать значение поля DateTime, опредляя заранее ее значение и если оно не пустое, записывать в датасет, иначе присваивать значение null и записать в датасет. Вот код:

//Переменные типа DateTime для коррекции значений
System.DateTime dtimemother;


//Если поле типа DateTime не пустое
if (parentrow["MOTHER_BITHDAY"].ToString() != "")
{
//Записать значение из таблицы не null
dtimemother = Convert.ToDateTime(parentrow["MOTHER_BITHDAY"]);
}
else
//иначе записать значение null
{
dtimemother = Convert.ToDateTime(System.DBNull.Value);

}


//……………………………..
………………………………….

//Добавляем в типизированный датасет новую запись,
//в качетсве параметров объекты типа string и DateTime

this.dsSchooll.PARENTS.AddPARENTSRow( prow,
parentrow["MOTHER_FIRSTNAME"].ToString(),
parentrow["MOTHER_SECNAME"].ToString(),
dtimemother,
parentrow["MOTHER_SOTTEL"].ToString());


Ошибка та же:
При выполнении функции, если поле parentrow["MOTHER_BITHDAY"] пустое, то возникает ошибка:
Object cannot be cast from DBnull to other types


Как обойти эту ситуацию проще?

P.S. Спасибо за старанее помочь :-)
...
Рейтинг: 0 / 0
Запись null в поле DateTime
    #32967037
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xsd схему своего типизированного DataSet покажите

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Запись null в поле DateTime
    #32967062
AlexanD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, как просили: dsSchooll.xsd

желаю удачи...
...
Рейтинг: 0 / 0
Запись null в поле DateTime
    #32967067
AlexanD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще разочек все...
...
Рейтинг: 0 / 0
Запись null в поле DateTime
    #32967116
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, как просили: dsSchooll.xsd

с DataSet ом все в порядке, смотрите на другой сгенерированный по вашей схеме overoads метод AddPARENTSRow
принимающий экземпляр класса PARENTSRow

Тогда код будет примерно такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
.....
PARENTSRow newRow = mySchoolDataSet.PARENTS.NewPARENTSRow();  // где mySchoolDataSet  - экземпляр вашего DataSet, у вас в примере это this.dsSchooll
...
newRow.BeginEdit();
newRow.MOTHER_FIRSTNAME = parentrow["MOTHER_FIRSTNAME"].ToString();
newRow.MOTHER_LASTNAME =  parentrow["MOTHER_LASTNAME"].ToString();
if (parentrow.IsNull("MOTHER_BIRTHDAY")) // проверка на Null
{
	newRow.SetMOTHER_BITHDAYNull(); // <--- вот нужный метод
}
else
{
	// день рождение мамы известно
        newRow.MOTHER_BITHDAY = .....
}
....
newRow.EndEdit();
dsSchooll1.PARENTS.AddPARENTSRow(newRow); // добавим новую запись

P.S. категорически не согласен с тем, что день рождение мамы может принимать значение NULL, может следует пересмотреть структуру БД :-)

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Запись null в поле DateTime
    #32967120
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sa
cмотрите на другой сгенерированный

метод конечно тот же, только с другой сигнатурой

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Запись null в поле DateTime
    #32967891
AlexanD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Всем огромное СПАСИБО!

Удачи в программистких начинаниях!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Запись null в поле DateTime
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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