【发布时间】:2016-07-15 09:46:57
【问题描述】:
我有一个数据库,其中包含一个名为 Articles 的表。
该表存储文章并具有一个字段 CDTimeStamp。 CDTimestamp 字段被更改为这样,因此它始终具有正确的创建日期:
ALTER TABLE [dbo].[Artikel] ADD CONSTRAINT [DF_Artikel_CDTimeStamp] DEFAULT (getdate()) FOR [CDTimeStamp]
GO
因此,如果我尝试添加文章,则会收到错误消息。 文章是这样添加的:
public void AddArticle()
{
this.Open();
Article article = new Article();
article.Description = "";
article.ArticleNr = GetArticleNumber();
article.Barcode = GetBarcode(); //EAN
article.Branch = GetBranch(); // 3digit number
article.Company = GetCompany(); // 1 or 2
article.Preis = GetPrice();
article.PreisNew = GetNewPrice();
//article.CDTimeStamp = DateTime.Now;
_OutDataContext.Artikel.InsertOnSubmit(article);
try
{
this.Submit();
}
catch (Exception e)
{
throw;
}
this.Close();
}
我得到的错误是:
SqlDateTime 溢出。必须在 1753 年 1 月 1 日凌晨 12:00:00 到 9999 年 12 月 31 日晚上 11:59:59。
如果我取消注释//article.CDTimeStamp = DateTime.Now;,则会创建并插入一个 DateTime,但应该插入 getdate() 默认值,而不是我在程序中创建的值。
我的问题是:
是否有配置条目或类似的东西可以调用默认函数?数据库字段不能为空。
附言 我不太确定如何称呼这个问题,所以如果您知道更正确的标题,请随时编辑它。
【问题讨论】: