Добавить запись в реляционный XML с помощью C # - PullRequest
0 голосов
/ 14 ноября 2009

У меня есть XML и XSD. Я хочу добавить запись в таблицу trck с набором данных. Я также пишу этот код, но мне нужен trackListrow ... как я могу справиться с этим?

playListDS rec = new playListDS();
            if(File.Exists(Server.MapPath("~/playlist.xml")))
                rec.ReadXml(Server.MapPath("~/playlist.xml"));


            int id = int.Parse(rec.track.Rows[rec.track.Rows.Count - 1][0].ToString()) + 1;

            if (ViewState["Filename"] != null && ViewState["Cover"] != null)
            {
                playListDS.trackListRow row  = new playListDS.trackListRow();
                  rec.track.AddtrackRow(id.ToString(), "mp3/" + ViewState["Filename"].ToString(), txtartist.Text,
                  txtalbum.Text, txttitle.Text,
                  txtannotation.Text, txtduration.Text, "mp3/cover" + ViewState["Cover"].ToString(),
                  txtinfo.Text, txtlink.Text);

    <?xml version="1.0"?>
<!-- Generated using Flame-Ware Solutions XML-2-XSD v2.0 at http://www.flame-ware.com/Products/XML-2-XSD/ -->
<xs:schema id="playListDS" targetNamespace="http://tempuri.org/playListDS.xsd" xmlns:mstns="http://tempuri.org/playListDS.xsd" xmlns="http://tempuri.org/playListDS.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
  <xs:element name="playListDS" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="1">
        <xs:element name="trackList">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="track" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="FileID" type="xs:string" minOccurs="0" />
                    <xs:element name="location" type="xs:string" minOccurs="0" />
                    <xs:element name="creator" type="xs:string" minOccurs="0" />
                    <xs:element name="album" type="xs:string" minOccurs="0" />
                    <xs:element name="title" type="xs:string" minOccurs="0" />
                    <xs:element name="annotation" type="xs:string" minOccurs="0" />
                    <xs:element name="duration" type="xs:string" minOccurs="0" />
                    <xs:element name="image" type="xs:string" minOccurs="0" />
                    <xs:element name="info" type="xs:string" minOccurs="0" />
                    <xs:element name="link" type="xs:string" minOccurs="0" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>

<?xml version="1.0" standalone="yes"?>
<playListDS xmlns="http://tempuri.org/playListDS.xsd">
  <trackList>
    <track>
      <FileID>6</FileID>
      <location>mp3/Gomez - See The World-1.mp3</location>
      <creator>Gomez</creator>
      <album>How We Operate</album>
      <title>See the World</title>
      <annotation>Buraya kendi yorumun gelicek boş kalabilir</annotation>
      <duration>243670</duration>
      <image>mp3/coverChrysanthemum.jpg</image>
      <info />
      <link>Grubun bi sitesi fln varsa buraya yazabilisin yoksa beni sil</link>
    </track>
  </trackList>
</playListDS>

Ответы [ 2 ]

0 голосов
/ 14 ноября 2009

да, но это манипулирует XML так. В mp3-плеере Dew нет двух таблиц trackList ...

     <trackList>
    <track>
      <FileID>6</FileID>
      <location>mp3/Gomez - See The World-1.mp3</location>
      <creator>Gomez</creator>
      <album>How We Operate</album>
      <title>See the World</title>
      <annotation>Buraya kendi yorumun gelicek boş kalabilir</annotation>
      <duration>243670</duration>
      <image>mp3/coverChrysanthemum.jpg</image>
      <info />
      <link>Grubun bi sitesi fln varsa buraya yazabilisin yoksa beni sil</link>
    </track>
  </trackList>
  <trackList>
    <track>
      <FileID>8</FileID>
      <location>mp3/Archives - Sleepdriving.mp3</location>
      <creator>Grand Archives</creator>
      <album>KEXP</album>
      <title>Sleepdriving</title>
      <annotation>Buraya kendi yorumun gelicek boş kalabilir</annotation>
      <duration>323562</duration>
      <image>mp3/coverDesert.jpg</image>
      <info>PITCHFORK / FORKCAST
http://pitchforkmedia.com</info>
      <link>Grubun bi sitesi fln varsa buraya yazabilisin yoksa beni sil</link>
    </track>
  </trackList>
0 голосов
/ 14 ноября 2009

Вы имеете в виду что-то вроде этого:

playListDS rec = new playListDS();
if(File.Exists(Server.MapPath("~/playlist.xml")))
{
    rec.ReadXml(Server.MapPath("~/playlist.xml"));
}

int id = int.Parse(rec.track.Rows[rec.track.Rows.Count - 1][0].ToString()) + 1;

if (ViewState["Filename"] != null && ViewState["Cover"] != null)
{
    playListDS.trackListRow row = rec.track.AddtrackRow(id.ToString(), "mp3/" +
                              ViewState["Filename"].ToString(), txtartist.Text,
                              txtalbum.Text, txttitle.Text,
                              txtannotation.Text, txtduration.Text, "mp3/cover" +
                              ViewState["Cover"].ToString(),
                              txtinfo.Text, txtlink.Text);
}

Все, что вам нужно, это новая добавленная строка? Если это так, вы получите новую строку из метода AddtrackRow .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...