我在读取 xml 时遇到问题,该 xml 是在保存与我以前读取的相同架构时创建的。
当我读取具有一行的 DataTable(例如 Person)时,DataTable 读取了该行,但当所有列都不为空时,它会向我显示所有为 null 的列。
我使用的代码如下
private DataSet LoadShema(string path)
{
string _archivoXsd = System.AppDomain.CurrentDomain.BaseDirectory +"Scheme.xsd";//HERE IS WHERE THE .XSD FILE IS
DataSet esquemaXSD = new DataSet();
string archivoXml = path;
FileStream FsXSD = new FileStream(_archivoXsd, FileMode.Open);
FileStream FsXML = new FileStream(archivoXml, FileMode.Open);
XmlTextReader xtrXSD = new XmlTextReader(FsXSD);
try
{
esquemaXSD.ReadXmlSchema(xtrXSD);
xtrXSD.Close();
FsXSD.Close();
XmlTextReader xtrXML = new XmlTextReader(FsXML);
esquemaXSD.ReadXml(xtrXML);
xtrXML.Close();
FsXML.Close();
}
catch
{
}
return esquemaXSD;
}
这就是我在方案中加载 xml 的方式,然后我做的另一件事是分配:
_dtPerson = new DataTable();
_dtPerson = esquemaXSD.Tables["Person"];
最后,我要做的是:
if (_dtPerson.Rows.Count == 1)
{
string name = Convert.ToString(_dtPerson.Rows[0]["Name"]);
}
当我执行最后一行代码时,出现“无法将 DBNull 对象转换为其他类型”的异常。