2010-10-11 2 views
1

J'ai besoin de faire des opérations de type de données simples et de type CRUD sur une page ASP.Net. J'utilise un LinqDataSource connecté avec un FormView. Le tableau que je suis en train d'insérer dans a contraintes par défaut pour ces champs:LinqDataSource - le paramètre d'insertion par défaut avec la valeur dbnull est-il possible?

[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]; 

Quand vous faites un insert je reçois une erreur de débordement SQL Datetime car il essaie d'insérer une valeur créée et modifiée même si Je n'ai rien lié à ces champs.

Ma question est comment puis-je obtenir LinqDataSource pour omettre ces champs dans l'instruction d'insertion ou au moins fournir dbnull ou null pour permettre aux valeurs par défaut de base de données de prendre le dessus?

Répondre

0

Je ne lis peut-être pas correctement votre question, mais si les contraintes n'autorisent pas les valeurs NULL, cela ne fonctionnera pas.

+0

Merci, j'ai mis à jour mon message avec du code qui montre quelles valeurs par défaut sont sur la table. L'idée est que fournir une valeur nulle à ces colonnes dans l'instruction insert permettra aux valeurs par défaut de prendre le dessus. J'ai besoin de savoir comment dire à LinqDataSource de passer dbnull à ces colonnes. – James

+0

J'ai trouvé cet article et cela ressemble à votre problème. http://www.codeproject.com/KB/linq/SettingDefaultValues.aspx. –

Questions connexes