【发布时间】:2011-10-17 16:31:01
【问题描述】:
我在使用数据表适配器时试图放松我的约束,但我得到一个对象引用未设置为对象实例错误。它发生在 ds.DataSet.EnforceConstraints = false; 的行上;
一般来说,我想知道如何防止数据表强制执行约束。
ubsmysDataSetTableAdapters.FormSaveDataTableAdapter ta = new ubsmysDataSetTableAdapters.FormSaveDataTableAdapter();
myDataSet.FormSaveDataDataTable ds = new myDataSet.FormSaveDataDataTable();
ds.DataSet.EnforceConstraints = false;
if (isAdmin) ds = ta.GetByUserIdForAdminUser(userId);
else ds = ta.GetByUserId(userId);
ds.DataSet.EnforceConstraints = true;
我对此很陌生,因此我们将不胜感激。
【问题讨论】:
-
如果 ds 已经是一个 DataSet 为什么要调用 ds.DataSet ?还是做一些调试,是 ds null 还是 ds.DataSet null?
-
这是个好问题。智能感知告诉我这是 EnforceConstraints 的属性所在的位置。让我试试吧。
-
好像ds不是数据集,而是数据表……嗯
-
不,只是一个用于从表中获取数据的表适配器。没什么特别的。
-
好的,请参阅下面我经过大量编辑的答案。如果您遵循代码或有任何问题,请告诉我。
标签: c# .net sql winforms tableadapter