我「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