c#日期时间误会 不再相关:

c#日期时间误会 不再相关:,c#,database,sql-server-ce,C#,Database,Sql Server Ce,在下面的一条注释中,OP提到了一个私有对象DateTime(){throw new NotImplementedException();}滑入。这是常有的事 我在SqlCe数据库中有一个DateTime字段。我希望添加创建行的时间,因此需要: DateTime now = DateTime.Now; 然而,我遇到的问题是,这是一种在给定上下文中无效的方法。 我猜这与它是静态的有关,我可能在非静态函数中使用它 只是在同一条线上问 SqlParameter Created = new SqlPa

在下面的一条注释中,OP提到了一个
私有对象DateTime(){throw new NotImplementedException();}
滑入。这是常有的事


我在SqlCe数据库中有一个
DateTime
字段。我希望添加创建行的时间,因此需要:

DateTime now = DateTime.Now;
然而,我遇到的问题是,这是一种在给定上下文中无效的方法。 我猜这与它是静态的有关,我可能在非静态函数中使用它

只是在同一条线上问

SqlParameter Created = new SqlParameter("@Created", SqlDbType.DateTime);
**Created.Value = DateTime.Now; <--- gives error DateTime() is method which is not valid in the given context**
SqlCeCommand mySQLCommand = dbCon.CreateCommand();
mySQLCommand.CommandText = "INSERT into table (Created) VALUES (@Created)";
mySQLCommand.Parameters.Add(vetCreated);
mySQLCommand.ExecuteNonQuery(); 

SqlParameter Created=newsqlparameter(“@Created”,SqlDbType.DateTime);
**Created.Value=DateTime.Now 在这方面:

mySQLCommand.Parameters.Add(vetCreated);
我不知道什么是
vetCreated
,但我认为这是一种根据错误消息判断的方法


您应该使用在那里创建的参数对象

您可以简化代码:

mySQLCommand.CommandText = "INSERT into table (Created) VALUES (@Created)";
mySQLCommand.Parameters.AddWithValue("Created", DateTime.Now);
mySQLCommand.ExecuteNonQuery(); 
我相信这也会解决您的问题,因为您的代码中不清楚创建了什么

[更新]

不确定如何处理连接和命令,因为代码没有显示它。以下是将行插入表的完整代码:

using (var connection = new SqlConnection("your connection string"))
using (var command = connection.CreateCommand())
{
    command.CommandText = "INSERT into table (Created) VALUES (@Created)";
    command.Parameters.AddWithValue("Created", DateTime.Now);
    connection.Open();
    command.ExecuteNonQuery();
}

关于第一个问题:请添加上下文和确切的错误消息。那条线看起来不错。试着问一个问题。这里没有线程。连接打开了吗?表的名称真的是
?通常需要转义到
[table]
SqlParameter Created=newsqlparameter(“@Created”,SqlDbType.DateTime);Created.Value=DateTime.Now();在你的评论中,你说Now()是不正确的,因为它不是一个方法,它现在就像你的示例一样-你是否输入了错误的示例?@Devil,你的问题下面有一个编辑链接。不要在注释中发布长代码。无论我在哪里添加DateTime。现在我得到了“一个在给定上下文中无效的方法”@DevilCode-您使用的是.NET的哪个版本?@DevilCode-更新了answer@Alex阿扎:对不起,我的评论太慢了,我已经删除了。我仍然希望(并建议)使用带有.Value的常规Add,因为它允许指定SqlDbType@faester-这不相关,因为参数是datetimetype@DevilCode:这是否意味着它现在正在工作?