簡體   English   中英

如何通過帶有參數的DbCommand將System.Datetime對象插入SqlServer

[英]How to Insert System.Datetime object into SqlServer via DbCommand with parameters

我嘗試做幾個小時。

            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嗎?

您無需在插入語句中為參數添加引號。 (值('@FirstDate'))

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

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

取決於數據庫中的類型(如果是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 );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM