如何在Datatable的Datetime列中设置Datetime

3
我正在尝试使用以下代码将当前日期时间存储在Datatable的日期时间列中。
dtRow["dCurrantDate"] = DateTime.Now;

但是出现了以下错误:

值的类型与列的类型不匹配,无法将<2019-04-18 12:32:11 PM>存储在dCurrantDate列中。期望的类型为DateTime。


请以文本格式而非图片的形式在此处发布您的错误信息。 - SᴇM
1
DateTime 没有 Now() 方法 - 只有一个 Now 属性。请修正您的代码。如果 DateTime 是自定义对象,而不是 System.DateTime,请提供 Now() 的签名。 - ProgrammingLlama
也许是 DateTime.Now - Roman
请检查您的列数据类型。 - Kevin Shah
我也尝试使用System.DateTime.Now,但仍然出现相同的错误。 - Hardik Leuwa
显示剩余3条评论
5个回答

2

试试这个

    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);
}

感谢您的回答。我的工作流程是:在Sql表中有一个名为dCurrantDate的列,其数据类型为shortdatetime。我已经通过获取Sql表列创建了Datatable,现在我想从C#将日期存储在Datatable dCurrantDate列中。还有一些其他列,我想在其中存储所选日期。 - Hardik Leuwa
我在将shortdatetime列附加到datatable列并将值存储在Datatable中遇到了问题。 - Hardik Leuwa

2
解决方案在错误信息中。C#的DateTime等效于SQL的datetimedatetime2。检查您的SQL表中的类型,并根据需要将其设置为这些日期类型之一。
如果您查看此处smalldatetime的定义,它以不同的方式存储时间。如果您需要时间,则需要剥离除小时和分钟外的所有内容,否则只使用日期。在Now后添加.Date

SQL中的数据类型是shortdatetime。能否将其转换并存储在datatable列中? - Hardik Leuwa
你能改变SQL表中的列类型吗? - Peter Smith
哦,抱歉,我无法更改 SQL 表中的列类型。 - Hardik Leuwa

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

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);`

0

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

DateTime matchDate = DateTime.FromOADate(cell);

这是最简单的解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接