开发者

Add a record to relational XML with C#

I have a XML and XSD I want to add a record to trck table with Dataset i'm also write that code but need trackListrow... how can i handle that?

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.x开发者_运维百科sd" 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>


Do you mean something like this:

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);
}

All you need is the new added row? If so, you get the new row from the AddtrackRow method.


yeah but that manipulate xml like that. Dew mp3 player can't see two trackList Table...

     <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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜