Не удается обновить набор данных при вставке новой строки - PullRequest
0 голосов
/ 31 января 2011

Я вставляю новую строку в набор данных dsStaff1 с помощью метода DataAdapter1.Update ().Я получаю следующую ошибку:

Невозможно вставить значение NULL в столбец «Включен», таблица «dbo.tblStaff»;столбец не допускает пустых значений.Вставить не удается.Оператор был прерван.

У меня действительно есть логическое поле 'Enabled' в tblStaff, которое, я полагаю, является ключевым словом в SQL Server.По умолчанию установлено значение «True».Я не могу действительно изменить название поля.Есть ли работа вокруг?ИЛИ я что-то не так делаю?PS: я генерирую команды вставки и обновления с помощью построителя sqlcommand.

Ответы [ 3 ]

1 голос
/ 31 января 2011

Если у вас есть значение по умолчанию, то ваш SQL Command Builder должен отправить NULL (DBNull.Value), чтобы переопределить значение по умолчанию.Значение по умолчанию будет применяться только в том случае, если:

  • , если вы не укажете значение для столбца в INSERT
  • или если вы используете ключевое слово DEFAULT

Одна из этих 2 форм:

--Enabled is not mentioned, will use default
INSERT (col1, col1) VALUES (col1, col2) 

--Enabled will use DEFAULT
INSERT (col1, col1, Enabled) VALUES (col1, col2, DEFAULT) 
0 голосов
/ 01 февраля 2011

Мой код :. Не удается выполнить обновление.

        Dim dr As System.Data.DataRow

        dr = DsStaff1.Tables(0).NewRow()

        dr.BeginEdit()
        dr.Item("FirstName") = txtName.Text
        dr.Item("LastName") = txtSurname.Text

        dr.Item("StaffID") = txtStaffID.Text
        dr.Item("Enabled") = cbActive.Checked
        dr.EndEdit()
        DsStaff1.Tables(0).Rows.Add(dr)

        DataAdapter1.Update(DsStaff1)

Также я использую TableMappings в DataAdapter1

        DataAdapter1.TableMappings.Add("Table", DsStaff1.Tables("tblStaff").ToString)

P.S. Обновление и удаление существующей строки работает нормально. Просто вставка новой строки не работает.

0 голосов
/ 31 января 2011

просто передайте фиксированное значение в набор данных в параметрах обновления

как

<asp:Parameter Name="col1" Type="boolean" DefaultValue="true"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...