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

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

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

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

Спасибо, с уважением Андрей!
...
Рейтинг: 0 / 0
18.09.2011, 15:31
    #37445327
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата в запросе = exception
Глядя на имеющуюся информацию - не заносить дату
...
Рейтинг: 0 / 0
18.09.2011, 15:42
    #37445334
andrej007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата в запросе = exception
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
18.09.2011, 15:44
    #37445337
Верблюд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата в запросе = exception
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
18.09.2011, 15:57
    #37445342
andrej007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата в запросе = exception
Верблюд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
18.09.2011, 16:05
    #37445345
PA
PA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата в запросе = exception
...
Рейтинг: 0 / 0
18.09.2011, 17:34
    #37445381
andrej007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата в запросе = exception
PAandrej007,

Custom Date and Time Format Strings


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

Сделал так -
Код: plaintext
dateTime.ToString("yyyy-MM-dd HH:mm:ss")
и всё работает!
...
Рейтинг: 0 / 0
18.09.2011, 17:49
    #37445388
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата в запросе = exception
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
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Дата в запросе = exception / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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