C# - 更新 SQL Server 中的日期时间列

标签 c# sql-server datetime

这是我在论坛上的第一篇文章。我找不到任何可以回答我的问题的帖子。如果您找到了,请回复链接,以便我查看。

我正在尝试使用 C# 更新 SQL Server 中的 DateTime 列。

在第一个控制台应用程序中,我已经创建了一个对象:

    NewCollegeEntities context = new NewCollegeEntities();

    College college = new College();
    college.collegeName = "BCIT";
    college.established = new DateTime(1960, 1, 1);

    context.Colleges.Add(college);
    context.SaveChanges();

现在,在第二个控制台应用程序中,我尝试为刚刚创建的对象添加一天:

    NewCollegeEntities context = new NewCollegeEntities();

    College college = (from c in context.Colleges
                       where c.collegeName == "BCIT"
                       select c).FirstOrDefault();


    college.established.Value.AddDays(1);
    context.SaveChanges();

当我运行第二个控制台应用程序时,结果与第一个控制台应用程序相同 - 1960,1,1。看起来我没有对数据库提交任何更改。

请帮助我了解发生了什么以及如何解决此问题。如果您需要更多信息,也请告诉我!谢谢!

最佳答案

这是一个常见的疏忽。 The AddDays() method (以及其他类似的方法)实际上并不修改您调用它的值。它返回一个新的DateTime,其中包含修改后的值。

只需使用新的DateTime:

college.established = college.established.Value.AddDays(1);

关于C# - 更新 SQL Server 中的日期时间列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33557658/

相关文章:

excel - 使用系统时间每 30 秒保存一次 Excel 文件

javascript - 如何将当前时序与两个时序进行比较

c# - 转置可编辑 DataGridView

c# - 如何在C#中使用OpenXML读取Excel的空白单元格列值

sql - 使用 include 中的所有列创建索引是一种不好的做法吗?

SQl 查询连接并将重复列值设置为 null

sql - 在 T-SQL 查询的 SELECT 子句中使用比较运算符

c# - Datetime.TryParse 无法解析 yyyy/MM/dd 格式

c# - 如何在安装时创建 SQL Server 数据库

c# - 在 C# 中测试 session 超时