Подтвердить что ты не робот

DataTable не поддерживает вывод схемы из Xml.?

<?xml version="1.0" encoding="utf-8"?>
<PHP_Adapter>
  <Adapter>
    <ID>11</ID>
    <Provider>22</Provider>
    <Connectstring>33</Connectstring>
  </Adapter>
</PHP_Adapter>

Это мой файл Xml, что неправильно?

    bool CheckAdapterExist(string aid)
    {
        DataTable dt = new DataTable();
        dt.ReadXml(axml);
        MessageBox.Show(dt.Rows[0]["ID"].ToString());

        return true;
    }
4b9b3361

Ответ 2

Если вы читаете файл XML из DataTable.WriteXML, убедитесь, что вы включили XMLWriteMode.WriteSchema.

Пример:

Table.WriteXml(DataFilePath, XmlWriteMode.WriteSchema);

Ответ 3

Это работает

        string XML = @"
          <MyTable>
            <MyRecord>
              <Col_1>test</Col_1>
              <Col_2>1234</Col_2>
            </MyRecord>
            <MyRecord>
              <Col_1>Record 2</Col_1>
              <Col_2>2</Col_2>
            </MyRecord>
          </MyTable>
        ";
        DataSet DS = new DataSet();
        DS.ReadXml(new StringReader(XML));

        DataTable DT=DS.Tables[0];

Ответ 4

Попробуйте, это сработает:

System.Xml.XmlTextReader reader =
                new System.Xml.XmlTextReader(@"C:\Users\Mayank\Documents\Projects\XMLTEST\XMLTEST\XMLFile1.xml");
            DataSet newTable = new DataSet();
            newTable.ReadXml(reader);
            DataTable _dt=newTable.Tables[0];

Ответ 6

ОК, это "Я тоже!". ответ, однако ни один из вышеперечисленных ответов не затрагивает ничтожество вопроса.

Чтобы правильно решить проблему, сначала дайте DataTable вывести схему из xml, вызвав метод ReadXmlSchema, i.e

bool CheckAdapterExist(string aid)
{
    DataTable dt = new DataTable();
    dt.ReadXmlSchema(axml);
    dt.ReadXml(axml);
    MessageBox.Show(dt.Rows[0]["ID"].ToString());

    return true;
}

Таким образом, схема выводится из XML, который вы пытаетесь загрузить, и не возникает ошибка!