2009-10-21 2 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

+0

Я добавляю использование источника данных. – Belliez

ответ

1

Пожалуйста, обратитесь к этой ссылке для некоторого хорошего результата

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

+0

Не совсем то, что я искал, но я достиг того, чего хотел, создав инструкцию SQL в Designer Dataset Designer, которая введет новую строку с единственным значением «Название», а остальная часть строки будет использоваться по умолчанию. К сожалению, не удалось сделать это с помощью DataGrid. Спасибо – Belliez

+0

любезно проголосовать, когда вы принимаете ответ – solairaja

5

Вы можете set the default values for the Datagridview на событие DefaultValuesNeeded

например:

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(); 
} 
Смежные вопросы