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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> внесение null в поле времени 
:(
    Опции темы
Alex_79
Дата 30.5.2008, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 4.5.2007

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



приветsmile
возникла такая проблема необходимо внести в поле которое имеет формат-время,пустое значение
Для этого ничего не прописываю в textBox1(в котором нужно указать дату), но мне выдается ошибка

Additional information: Failed to convert parameter value from a String to a DateTime.

что делать?

СУБД:Oracle 10g(XE)
Среда разработки: VS2005

Заранее благодарен за  помощь)

Это сообщение отредактировал(а) Alex_79 - 30.5.2008, 11:47
PM MAIL   Вверх
Walker
Дата 30.5.2008, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 363
Регистрация: 23.10.2006

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



Вы ответы-то хоть читаете?  smile 
Использование следующего типа также правомерно
Код

DateTime?



--------------------
"От вчерашних побед остаётся усталость, если завтрашний день не сулит ничего..."
PM MAIL   Вверх
Alex_79
Дата 30.5.2008, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 4.5.2007

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



Walker,
Error    2    Argument '7': cannot convert from 'System.DateTime?' to 'string'
DateTime? m=null-вот это использовал
 


PM MAIL   Вверх
Walker
Дата 30.5.2008, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 363
Регистрация: 23.10.2006

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



 smile Вы что сделать пытаетесь?
Покажите код.
Если текстовое поле пустое - в базу пишите null, как есть, без преобразования типов.
Если читаете из Базы - разрешите приём null, и, если оно встретится, просто никуда его не выводите и не к чему не приводите.

Это сообщение отредактировал(а) Walker - 30.5.2008, 12:11


--------------------
"От вчерашних побед остаётся усталость, если завтрашний день не сулит ничего..."
PM MAIL   Вверх
Alex_79
Дата 30.5.2008, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 4.5.2007

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



Код

decimal? d = null;
            DateTime? m = null;
           
            if (textBox3.Text != "")
            {
                if (textBox8.Text == "")
                {
                 
                    DataSet1TableAdapters.EkzempTableAdapter adapter1 = new Base.DataSet1TableAdapters.EkzempTableAdapter();

                    adapter1.UpdateEkzempl(Convert.ToDecimal(comboBox1.SelectedValue.ToString()), Convert.ToDecimal(textBox1.Text), textBox7.Text, Convert.ToDecimal(comboBox2.SelectedValue.ToString()), Convert.ToDecimal(comboBox3.SelectedValue.ToString()), Convert.ToDecimal(textBox2.Text), m, Convert.ToDecimal(textBox3.Text), id_cen_up);
                }
            }


Добавлено @ 12:10
textBox8 -это дата[code=csharp]



Это сообщение отредактировал(а) Alex_79 - 30.5.2008, 12:16
PM MAIL   Вверх
Walker
Дата 30.5.2008, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 363
Регистрация: 23.10.2006

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



Отредактируйте, Пожалуйста, сообщение. Выделите код, нажмите сверху кнопку Код - выберите C#. Улучшится читабельность, - поможем Вам разобраться.
Код надо реорганизовать. Подождите немного.

Это сообщение отредактировал(а) Walker - 30.5.2008, 12:14


--------------------
"От вчерашних побед остаётся усталость, если завтрашний день не сулит ничего..."
PM MAIL   Вверх
Alex_79
Дата 30.5.2008, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 4.5.2007

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



Walker, так если нет ничего  в textBox8 , он мне потом выдает ошибку что не возможно конвертировать String в DataTime

PM MAIL   Вверх
Walker
Дата 30.5.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 363
Регистрация: 23.10.2006

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



По Вашему случаю:
Если Вы пишете в самом условии
Код

if (textBox3.Text != "")
{
                if (textBox8.Text == "")

то зачем в теле условной конструкции ссылатся на содержимое этих текстбоксов? Почему сразу не отправить null?
На будущее: вместо
Код

textBox8.Text == ""

используйте
Код

String.IsNullOrEmpty(textBox8.Text)

Его сигнатура
Код

public static bool IsNullOrEmpty(string value)
{
    if (value != null)
    {
        return (value.Length == 0);
    }
    return true;
}

Почувствуйте разницу...


Это сообщение отредактировал(а) Walker - 30.5.2008, 12:25


--------------------
"От вчерашних побед остаётся усталость, если завтрашний день не сулит ничего..."
PM MAIL   Вверх
Alex_79
Дата 30.5.2008, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 4.5.2007

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



если ставлю просто null то выдает ошибку
Additional information: Failed to convert parameter value from a String to a DateTime.
PM MAIL   Вверх
Walker
Дата 30.5.2008, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 363
Регистрация: 23.10.2006

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



Код

decimal? d = null;
            DateTime? m = null;
           
            if (textBox3.Text != "")
            {
                if (textBox8.Text == "")
                {
                 
                    DataSet1TableAdapters.EkzempTableAdapter adapter1 = new Base.DataSet1TableAdapters.EkzempTableAdapter();
                    adapter1.UpdateEkzempl(Convert.ToDecimal(comboBox1.SelectedValue.ToString()), Convert.ToDecimal(textBox1.Text), textBox7.Text, Convert.ToDecimal(comboBox2.SelectedValue.ToString()), Convert.ToDecimal(comboBox3.SelectedValue.ToString()), Convert.ToDecimal(textBox2.Text), m, Convert.ToDecimal(textBox3.Text), id_cen_up);
                }
            }

На какой строке вылетает ошибка? Гда происходит попытка преобразования в DateTime?


--------------------
"От вчерашних побед остаётся усталость, если завтрашний день не сулит ничего..."
PM MAIL   Вверх
Alex_79
Дата 30.5.2008, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 4.5.2007

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



Код

adapter1.UpdateEkzempl(Convert.ToDecimal(comboBox1.SelectedValue.ToString()), Convert.ToDecimal(textBox1.Text), textBox7.Text, Convert.ToDecimal(comboBox2.SelectedValue.ToString()), Convert.ToDecimal(comboBox3.SelectedValue.ToString()), Convert.ToDecimal(textBox2.Text), m, Convert.ToDecimal(textBox3.Text), id_cen_up);

                }
            }

Добавлено через 36 секунд
на m вылетает
PM MAIL   Вверх
Walker
Дата 30.5.2008, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 363
Регистрация: 23.10.2006

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



Цитата

на m вылетает 

Этого я не понял.
Цитата

textBox8 -это дата

Где в приведённой выше строке textBox8, null, etc связанное с датой?


--------------------
"От вчерашних побед остаётся усталость, если завтрашний день не сулит ничего..."
PM MAIL   Вверх
Alex_79
Дата 30.5.2008, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 4.5.2007

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



кстати я обновляю данные

Добавлено через 1 минуту и 59 секунд
если textBox8 пуст, то я вставляю не его значение, а m
PM MAIL   Вверх
Magnifico
Дата 30.5.2008, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 2
Всего: 17



по примеру между комментариями
Код

DataRow r = ds.Tables["Customer"].NewRow();
            r.BeginEdit();
            r[0] = Convert.ToInt32(CustNoTextBox.Text);
            r[1] = CompanyTextBox.Text;
            r[2] = AddrTextBox.Text;  
            DateTime date;
//--------------------------------------------------------------------------------------------//
            if (DateTime.TryParse(DataTextBox.Text.Trim(), out date))
            {
                r[3] = date; 
            }
            else  {
                r[3] = DBNull.Value; 
            }
//-----------------------------------------------------------------------------------------------//
            r.EndEdit();
            ds.Tables["Customer"].Rows.Add(r);




--------------------
Всё  в  порядке   -   спасибо  зарядке  !
PM MAIL   Вверх
Любитель
Дата 30.5.2008, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 1
Всего: 92



Ты null в Convert.ToDecimal передаёшь, а не в сам Update. Так?


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

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

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

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


 




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


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

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