2010-10-11 49 views
1

我需要在ASP.Net頁面上做一些簡單的(或者看起來)數據綁定和CRUD類型的操作。我正在使用與FormView連接的LinqDataSource。我想要插入到表有默認的約束上爲這些字段:LinqDataSource - 是否具有dbnull值的默認插入參數?

[Created] [datetime] NOT NULL 
[CreatedBy] [nvarchar](50) NOT NULL 
[Modified] [datetime] NOT NULL 
[ModifiedBy] [nvarchar](50) NOT NULL 

ALTER TABLE [dbo].SolutionComponent ADD CONSTRAINT [DF_SolutionComponent_Created] DEFAULT (getdate()) FOR [Created]; 
ALTER TABLE [dbo].SolutionComponent ADD CONSTRAINT [DF_SolutionComponent_CreatedBy] DEFAULT (suser_sname()) FOR [CreatedBy]; 
ALTER TABLE [dbo].SolutionComponent ADD CONSTRAINT [DF_SolutionComponent_Modified] DEFAULT (getdate()) FOR [Modified]; 
ALTER TABLE [dbo].SolutionComponent ADD CONSTRAINT [DF_SolutionComponent_ModifiedBy] DEFAULT (suser_sname()) FOR [ModifiedBy]; 

在做插入我得到一個SQL日期時間溢出錯誤,因爲它試圖插入值創建和修改,即使我對這些領域沒有任何限制。

我的問題是我如何讓LinqDataSource在插入語句中省略這些字段,或者至少提供dbnull或null以允許數據庫級別的默認值接管?

回答

0

我可能沒有正確地讀你的問題,但如果約束不允許NULL值,它不會工作。

+0

謝謝,我更新了我的帖子,其中顯示了表中哪些默認值。這個想法是,在insert語句中爲這些列提供一個空值將允許默認值接管。我需要知道如何告訴LinqDataSource將dbnull傳遞給這些列。 – James 2010-10-11 17:52:57

+0

我發現這篇文章,它聽起來與您的問題類似。 http://www.codeproject.com/KB/linq/SettingDefaultValues.aspx。 – 2010-10-12 12:55:58