0

以前読んだのと同じスキーマを保存して作成されたxmlの読み取りに問題があります。

たとえば、Person などの 1 行の DataTable を読み取ると、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オブジェクトを他の型に変換できません」という例外が発生しました。

4

0 に答える 0