我正在使用需要将数据库中的数据与 XML 文件中的数据进行比较的应用程序。问题是当它比较时,当 XML 文件中缺少的元素被视为空字符串并因此与数据库中的数据不正确匹配时,会出现故障。
应用程序本身会创建 XML 文件,所以我可以控制它。我想做的是为 XML 文件中的所有元素设置默认值,以便稍后将该 XML 文件读入数据集时,将 XML 文件中缺少的元素转换为 NULL。
源数据是一个数据集——数据可能来自不同数据库中的不同表或视图。对于此类问题,我能找到的唯一解决方案是[XmlElement("object1"), DefaultValue(NULL)]
在设置类时使用类似于对象之前的东西。当不同源表的表中的列不同时,如何为数据集实现这一点?
以下是对 XML 文件进行序列化的当前代码:
TextWriter tw = new StreamWriter(fileNameAndPath);
XmlSerializer xs = new XmlSerializer(typeof(DataCopy));
xs.Serialize(tw, DataCopyLog1);
这是 DataCopy 的类定义:
public class DataCopy
{
public DateTime LastCopy { get; set; }
public DataSet Data { get; set; }
public DataCopy()
{
Data = new DataSet();
LastCopy = DateTime.Now;
}
}