以前読んだのと同じスキーマを保存して作成された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オブジェクトを他の型に変換できません」という例外が発生しました。