dsrm_usersTableAdapters.rm_usersIPTableAdapter _tuser = new dsrm_usersTableAdapters.rm_usersIPTableAdapter();
dsrm_users _dsuser = new dsrm_users();
_dsuser.EnforceConstraints = false;
dsrm_users.rm_usersIPDataTable _muser = _dsuser.rm_usersIP;
_tuser.FillBy(_muser, _IP);
这是非常好的作品;
但是,当我使用ObjectDataSource并使用GetData()方法连接到网格视图时,它会出错;
无法启用约束。一行或多行包含违反非null,唯一或外键约束的值;错误;
我去了数据集,我在属性窗口中设置了EnforceConstraints = false,我尝试再次给它同样的erorr。所以EnforceConstraints = false不适用于GetDATA();
那我现在该怎么办?如何在没有此错误的情况下使用GetData()来使用ObjectDataSource。
答案 0 :(得分:1)
我首先会尝试确定你的约束失败的原因。
您可以通过
确定_dsuser.EnforceConstraints = false;
//fill info
try
{
_dsuser.EnforceConstraints = true;
}
catch
{
if (ds.HasErrors)
{
DataRow[] drs = _dsuser.[datatablename].GetErrors();
foreach(DataRow dr in drs)
{
foreach(DataColumn dc in dr.GetColumnsInError())
{
Console.Write(dr.GetColumnError(dc));
}
}
}
}
这将向控制台打印数据表中的任何错误
如果您不知道表名,也可以使用ds.tables循环表。