我正在使用System.Data.IDbCommand来查询具有主键的表。我的查询将其与其他表连接,并在主键列中提取多个具有相同值但在其他连接列中具有不同值的记录,这是预期的行为。
但是,IDbCommand.ExecuteReader()。GetSchemaTable()表明读者的内部架构表在该列上有一个主键。现在,如果我尝试将此读取器加载到System.Data.DataTable(普通的旧DataTable,而不是类型),它会抛出约束违例异常(显然是因为它试图为主键列插入相同的值)。 / p>
有没有办法可以指示ExecuteReader()忽略源架构或不强制执行约束?
其他信息:这是.Net 2.0。
提前致谢
答案 0 :(得分:2)
你能用
之类的东西吗?DataTable result = new DataTable();
SqlCeDataAdapter adapter = new SqlCeDataAdapter(command);
adapter.Fill(result);
使用您的查询初始化命令并使用正确的提供程序。
答案 1 :(得分:0)
伙计们,我找到了解决方法。但这不是解决方案。我修改了我的查询,将该列从其他表中作为外键列引用,引用我原始表的主键列。
干杯!