如何在“数据表日期时间”列中设置日期时间

时间:2019-04-18 06:55:33

标签: c# asp.net sql-server asp.net-mvc datetime-format

我正在尝试使用下面的代码在Datatable Datetime列中存储当前日期的当前日期

dtRow["dCurrantDate"] = DateTime.Now;

但出现此错误:

  

值类型与列类型不匹配无法存储   dCurrantDate列中的<2019-04-18 12:32:11 PM>预期类型为   日期时间。

5 个答案:

答案 0 :(得分:2)

解决方案在错误消息中。 C#DateTime等效于SQL datetimedatetime2。检查SQL表中的类型,并在必要时将其设置为以下两种日期类型之一。

如果您在这里查看smalldatetime的定义,它将以不同的方式存储时间。如果需要时间,则需要除去小时和分钟以外的所有内容,否则请仅使用日期。在.Date之后添加Now

答案 1 :(得分:2)

根据显示的错误,数据库中列的数据类型与输入不匹配(如果列类型为datetime,则未存储AM或PM,则使用datetime2类型)

答案 2 :(得分:1)

尝试一下

    public void MakeDataTable(){
    DataTable myTable;
    DataRow myNewRow; 
    // Create a new DataTable.
    myTable = new DataTable("My Table");
    //ADDING DATETIME COLUMN
    DataColumn colDateTime = new DataColumn("DateTimeCol");
    colDateTime.DataType = System.Type.GetType("System.DateTime");
    myTable.Columns.Add(colDateTime);
    //ADDING ROW TO DATA-Table
    myNewRow = myTable.NewRow();
    myNewRow["DateTimeCol"] = System.DateTime.Now;
    myTable.Rows.Add(myNewRow);
}

答案 3 :(得分:1)

基本上,将添加一个DateTime列,如下所示,请与您的代码进行交叉检查         

        DataTable dt = new DataTable();

        DataColumn dc = new DataColumn();

        dc.ColumnName = "dCurrantDate";
        dc.DataType = typeof(DateTime);
        dt.Columns.Add(dc);

        DataRow dr = dt.NewRow();

        dr["dCurrantDate"] =DateTime.Now;
        dt.Rows.Add(dr);`

答案 4 :(得分:0)

double cell = Convert.ToDouble(dataTable.Rows [rowCount] [columnCount]);

DateTime matchDate = DateTime.FromOADate(cell);

这是最简单的解决方案。