.Net: Notices in loading dataset by ReadXml() with options

If exceptions were thrown while reading xml:

1. ReadXml(file, XmlReadMode.InferSchema) ---- ArgumentException may be thrown with error message:
{"The same table (Users) cannot be the child table in two nested relations." }
2. ReadXml(file, XmlReadMode.IgnoreSchema) --- No exception is thrown right now, but InvalidCastException may be thrown for some properties while getting property LATER with error message: {"Specified cast is not valid."}

so, better to read xml InferSchema defaultly, then catch the ArgumentException if encountered...

try
{
ds.ReadXml(xmlFile, XmlReadMode.InferSchema);
}
catch (ArgumentException)
{
ds.ReadXml(xmlFile, XmlReadMode.IgnoreSchema);
}
catch (Exception e)
{
ds = null;

return;

}

If System.Data.ConstraintException was thrown with following error message:
"Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.", please set EnforceConstraints as false.

Published At
Categories with Web编程
Tagged with
comments powered by Disqus