2009-10-21 78 views
3

我有以下SQL创建一个表并插入第一行数据没有问题。默认的DateTime值也按预期插入。添加新行datagridview使用默认值

CREATE TABLE Jobs (
[Id]  int PRIMARY KEY IDENTITY(1,1), 
[JobName]  nvarchar(256) Default 'SomeName', 
[CreateDate]  DateTime DEFAULT GETDATE(), 
[ModifyDate]  DateTime DEFAULT GETDATE(), 
[LastOpenDate]  DateTime DEFAULT GETDATE(), 
[CreatedByUser]  nvarchar(64) Default 'SomeUser', 
[Title]  nvarchar(256) Default 'SomeTitle') 
GO 
INSERT INTO Jobs (JobName) 
VALUES ('NewName') 
GO 

在Visual Studio 2008中,我使用DataGridView和BindingNavigator控件。当我添加一个新行时,不插入默认值,而是插入空值。我认为这是与控件有关的事情,但不知道如何获得使用的默认值。

任何想法?

感谢

+0

是否经由插入数据源或其他方法gy? – solairaja 2009-10-21 10:25:02

+0

我正在使用数据源进行添加。 – Belliez 2009-10-22 14:04:48

回答

1

请参考此链接一些好的结果

http://forums.asp.net/p/1003755/1328318.aspx#1328318

+0

不是我正在寻找的东西,但是我通过在数据集设计器中创建一个SQL语句来实现我想要的目的,该语句将插入一个带有单个“标题”值的新行,然后该行的其余部分将成为默认值。不幸的是不能这样做使用DataGrid。谢谢 – Belliez 2009-11-18 10:50:24

+0

当你接受答案时,请投票 – solairaja 2009-12-13 12:08:28

5

您在DefaultValuesNeeded事件中为可set the default values for the Datagridview

如:

private void dataGridView1_DefaultValuesNeeded(object sender, 
    System.Windows.Forms.DataGridViewRowEventArgs e) 
{ 
    e.Row.Cells["Region"].Value = "WA"; 
    e.Row.Cells["City"].Value = "Redmond"; 
    e.Row.Cells["PostalCode"].Value = "98052-6399"; 
    e.Row.Cells["Region"].Value = "NA"; 
    e.Row.Cells["Country"].Value = "USA"; 
    e.Row.Cells["CustomerID"].Value = NewCustomerId(); 
}