我在读取xml时遇到问题,创建的xml保存了我以前读过的相同模式。
当我读取一个DataTable,例如Person,它有一行时,DataTable读取该行,但是当所有列都不为null时,显示所有列为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对象转换为其他类型”的异常。