Как вставить объект System.Datetime в SqlServer через DbCommand с параметрами - PullRequest
0 голосов
/ 24 марта 2012

Я пытаюсь сделать это в течение пары часов.

            Database db = DBUtil.GetInstance().GetDataBase();
            DbCommand cmd = db.GetSqlStringCommand(@"INSERT INTO [XXX] (
            ...
                                                                  ,[FirstDate]
            ...
            ) VALUES ('@FirstDate',...");

            db.AddInParameter(cmd, "@FirstDate", DbType.Date, DateTime.Now );

Но я всегда получаю эту информацию об исключении ниже.

{System.Data.SqlClient.SqlException (0x80131904): Ошибка преобразования при преобразовании даты и / или времени из символьной строки.

Что мне делать для преобразования?Или подобрать другой DbType?DbType.DateTime2?

Ответы [ 2 ]

2 голосов
/ 24 марта 2012

Вам не нужно добавлять кавычки для параметра в оператор вставки. (Значения ('@ FirstDate'))

    Database db = DBUtil.GetInstance().GetDataBase();
    DbCommand cmd = db.GetSqlStringCommand(@"INSERT INTO [XXX] (
    ...
                                                          ,[FirstDate]
    ...
    ) VALUES (@FirstDate,...");

   db.AddInParameter(cmd, "@FirstDate", DbType.DateTime, DateTime.Now );
1 голос
/ 24 марта 2012

Зависит от того, какой тип в вашей базе данных, если это Date или DateTime.

// full date and time
db.AddInParameter(cmd, "@FirstDate", DbType.DateTime, DateTime.Now );

или

// just the date portion
db.AddInParameter(cmd, "@FirstDate", DbType.Date, DateTime.Now.Date );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...