我“AM复制从表A中的数据表B 表B具有可空列具有0 一般我设定值的默认约束值使用以下访问器的列。ADO.NET CommandBuilder的,将InsertCommand和默认约束
public object this[string columnName]
{
get { return DataTable.Rows[CurrentRow][columnName]; }
set { DataTable.Rows[CurrentRow][columnName] = value; }
}
但我不设置我可空列X.
当我插入整个行,不使用默认值。而不是0,为空的列插入NULL。
_sqlCommandBuilder = new SqlCommandBuilder(_sqlDataAdapter);
_sqlCommandBuilder.ConflictOption = ConflictOption.OverwriteChanges;
_sqlCommandBuilder.SetAllValues = false;
_sqlDataAdapter.Update(DataTable);
我也得到了架构:
_sqlDataAdapter.Fill(DataTable);
_sqlDataAdapter.FillSchema(_dataTable, SchemaType.Mapped);
为什么ADO.NET设置为NULL我的专栏X虽然我没有设置呢?
我认为,当我不设置列X的值时,ADO.NET将从给定的约束获取默认值。
ADO.NET CommandBuilder能够使用默认约束吗?
我不想手动创建更新,创建,删除语句。我希望我能正确理解你。如果没有,请让我知道:) – Rookian 2011-05-12 10:44:48
您可能会认为,当您向表中添加一行时,只有您设置的列将位于插入语句中,从而允许默认值正确显示。这在ADODB中有效,我很惊讶ADO.NET已经失去了这个功能。 – Brain2000 2014-03-17 18:41:51