放宽数据表适配器的约束

时间:2011-10-17 16:31:02

标签: c# .net sql winforms tableadapter

我正在尝试在使用数据表适配器时放松我的约束,但我得到一个对象引用没有设置为对象的实例错误。它发生在说ds.DataSet.EnforceConstraints = false;

的行上

通常,我想知道如何防止dataTable强制执行约束。

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;

我对此很新,所以任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

尝试以下操作,您可能需要调整蓝色文字,以便与您的文字完美匹配,但您应该能够理解:

使用“填充”方法获取数据:

ubsmysDataSet ds = new ubsmysDataSet();

ubsmysDataSet.FormSaveDataDataTable dt = new ubsmysDataSet.FormSaveDataDataTable();

ds.Tables.Add(dt);

ds.EnforceConstraints = false;

ubsmysDataSetTableAdapters.FormSaveDataTableAdapter ta = new ubsmysDataSetTableAdapters.FormSaveDataTableAdapter();

if (isAdmin)
{

}
else
{
    ta.FillByUserId(dt,130559)
}

ds.EnforceConstraints = true;

请参阅上面添加的行。

答案 1 :(得分:0)

new myDataSet.FormSaveDataDataTable();

正在返回null,因此当您尝试ds时,null将为ds.DataSet.EnforceConstraints = false;

这里有些不对劲,但由于你还没有发布所有代码,我们无法完全评估。