0

我在读取 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 对象转换为其他类型”的异常。

4

0 回答 0