小编Zac*_*ber的帖子

是否可以为新行设置 DataGridRow 单元格的值?

我对 WPF 和 XAML 非常陌生,所以我可能会以错误的方式处理这个问题。

我有一个使用实体框架绑定到数据源的 DataGrid。

当我向 DataGrid 添加新行时,我希望名为“Created”的列之一自动填充当前日期和时间。

数据最终存储在 SQL Server 上。

SQL Server 上的“Created”列不可为空,但具有默认值“getdate()”。它与我们当前的 MS Access 应用程序配合得很好。运行手动插入查询时,只需省略“已创建”列的值即可触发默认值。

新行使用默认值“1/1/0001 12:00:00 AM”而不是当前日期和时间,尽管 SQL Server 的默认值为“getdate()”。

我试过了:

  • 更改模型以使该列的默认值不是“(无)”而是“DateTime.Now”,我也尝试了“Now”。两者都不起作用。
  • 更改模型以使该列的可为空属性为 true。
  • 我尝试了 DataGridView 的“AddingNewItem”事件,但无法让它工作。
  • 我尝试了 DataGridView 的“RowEditEnding”事件,但也不知道如何让它工作。
  • 我尝试从 DataGridView 中完全删除有问题的列,但是当在 dbContext 对象上调用 SaveChanges() 时,它会抛出一个异常,指出 datetime2 到 datetime 的转换导致了超出范围的异常或类似的情况。确切的错误是(第一个异常是“UpdateException:更新条目时发生错误。有关详细信息,请参阅内部异常。”):错误

我不知道该怎么做。我知道“视图”只应该负责呈现数据,但我不确定如何更改模型,以便该特定表的新行不发送“已创建”列的值或者在添加新行时始终传递当前日期和时间。

我花了几个小时查看 WPF 文档、实体框架文档、Stack Overflow、MSDN 文档...我快要抓狂了!任何帮助将不胜感激!

c# wpf xaml entity-framework datagridview

2
推荐指数
1
解决办法
1461
查看次数

标签 统计

c# ×1

datagridview ×1

entity-framework ×1

wpf ×1

xaml ×1