У меня есть таблица, в которой одно из полей имеет тип «InDatabase» (тип SQL «бит»), который не допускает нулевые значения.
Я создаю таблицу и добавляю в нее несколько сотен строк, гдеInDatabase всегда присваивается значение (InDatabase относится к тому, находится ли строка в другой базе данных)
Когда я вызываю SqlBulkCopy, он выдает ошибку InvalidOperationException, с сообщением:
"Column 'InDatabase' does not allow DBNull.Value."
Каждая строка создается следующим образом:
ProductionDatabaseDataSet.EntriesV2Row NewRow = this.InsertTable.NewEntriesV2Row();
NewRow.MeetEntryID = MeetEntryID;
NewRow.EventID = EventID;
NewRow.MeetID = MeetID;
NewRow.AthleteID = AthleteID;
NewRow.Exhibition = Exhibition;
NewRow.Bonus = Bonus;
NewRow.EnterEvent = true;
NewRow.InDatabase = true;
if (AutoTime != null)
NewRow.AutoTime = AutoTime ?? -1;
if (CustomTime != null)
NewRow.CustomTime = CustomTime ?? -1;
this.InsertTable.AddEntriesV2Row(NewRow);
Затем, после того, как вышеупомянутый вызов примерно 300 раз, вызывается SqlBulkCopy:
SqlBulkCopy bulkCopy = new SqlBulkCopy(this.Connection.ConnectionString);
bulkCopy.DestinationTableName = this.Adapter.TableMappings[0].DataSetTable;
bulkCopy.BatchSize = BatchSize;
bulkCopy.WriteToServer(InsertTable); //Throwing the error
Я использую этот точно такой же формат примернодюжина других таблиц без проблем.