powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Дата в запросе = exception
8 сообщений из 8, страница 1 из 1
Дата в запросе = exception
    #37445302
andrej007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здраствуйте!

Я заношу в базу данных дату и даёт такой эксепшен:

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

Как порекомендуете это лучьше исправить!

Спасибо, с уважением Андрей!
...
Рейтинг: 0 / 0
Дата в запросе = exception
    #37445327
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Глядя на имеющуюся информацию - не заносить дату
...
Рейтинг: 0 / 0
Дата в запросе = exception
    #37445334
andrej007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
internal bool SaveNewPayment(Guid ID, Guid CreditID, decimal _paymentAmmount, DateTime dateTime)
        {            
            bool flag = true;
            using (SqlConnection _connection = new SqlConnection(_connectionString))
            {
                _connection.Open();
                SqlTransaction _sqlTrans = _connection.BeginTransaction();
                SqlCommand _sqlCommand = _connection.CreateCommand();
                _sqlCommand.Transaction = _sqlTrans;
                try
                {
                    string _query = String.Format("INSERT INTO Payments (ID, CreditsID, Amount, PaymentDate) VALUES"+
                        "('{0}', '{1}', '{2}', '{3}')", ID, CreditID, _paymentAmmount, dateTime);
                    _sqlCommand.CommandText = _query;
                    _sqlCommand.ExecuteNonQuery();

                    _query = String.Format("UPDATE Cretits SET Balance = (Balance - {0}) WHERE ID = {1}", _paymentAmmount, CreditID);
                    _sqlCommand.CommandText = _query;
                    _sqlCommand.ExecuteNonQuery();

                    _sqlTrans.Commit();
                }
                catch(Exception)
                {                    
                    _sqlTrans.Rollback();
                    flag = false;
                }
                finally
                {                    
                    if (_connection.State == System.Data.ConnectionState.Open)
                        _connection.Dispose();
                }
            }
            return flag;
        }
...
Рейтинг: 0 / 0
Дата в запросе = exception
    #37445337
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrej007The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

1. Выставить нормально часы, что бы показывали нормальное время, которое не будет out-of-range
2. Использовать процедуры, а не передавать на сервер даты в виде текстовой строки
3. Забить на программирование и устроиться вышибалой в соседний ресторан
...
Рейтинг: 0 / 0
Дата в запросе = exception
    #37445342
andrej007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Верблюдandrej007The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

1. Выставить нормально часы, что бы показывали нормальное время, которое не будет out-of-range
2. Использовать процедуры, а не передавать на сервер даты в виде текстовой строки
3. Забить на программирование и устроиться вышибалой в соседний ресторан

1. Где их выставить? На стенку?

2. Поконкретнее пожалуйста! У меня такое задание, таким методом, но интересно как процедурами(может ссылочку?) :(

3. Ещё в запасе 2 года, тогда и буду думать кем буду!
...
Рейтинг: 0 / 0
Дата в запросе = exception
    #37445345
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Дата в запросе = exception
    #37445381
andrej007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PAandrej007,

Custom Date and Time Format Strings


Спасибо что дали ссылку...

Сделал так -
Код: plaintext
dateTime.ToString("yyyy-MM-dd HH:mm:ss")
и всё работает!
...
Рейтинг: 0 / 0
Дата в запросе = exception
    #37445388
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
andrej007,

Через параметры все же надежнее и гибче, хоть и писанины больше


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
string _query = "INSERT INTO Payments (ID, CreditsID, Amount, PaymentDate) VALUES"+
                        "(@ID, @CreditsID, @Amount, @PaymentDate)");
                    _sqlCommand.CommandText = _query;

		_sqlCommand.Parameters.Add(@ID,SqlDbType.Int).Value = ID;
		_sqlCommand.Parameters.Add(@CreditsID,SqlDbType.Int).Value = CreditID;
		_sqlCommand.Parameters.Add(@Amount,SqlDbType.Int).Value = _paymentAmmount;
		_sqlCommand.Parameters.Add(@PaymentDate,SqlDbType.DateTime).Value = dateTime;

                    _sqlCommand.ExecuteNonQuery();
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Дата в запросе = exception
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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