Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Ladda, ändra, spara XML-fil

Postades av 2004-07-08 04:33:33 - Joacim Ahlberg, i forum asp.net generellt, Tråden har 9 Kommentarer och lästs av 1478 personer

Hej,

jag söker efter ett exempel på hur jag (viss ironi eftersom jag letat länge nu):

laddar ett dataset från en xml-fil
(ändrar mitt dataset mha ex en textbox på en webbsida)
sparar min ändring tillbaka till fil

Detta som jag först trodde mycket enkla scenario har visat sig vara en raritet att finna lösningen på.
Jag har funnit ett otal olika lösningar för samma sak men mot databaser, jag vill ju använda en fil nu och då går dataadaptern bort.

Ingen som arbetat med dataset mot en fil som vet var jag kan hitta det som saknas i mina kunskaper?


mvh
Jocke


Svara

Sv: Ladda, ändra, spara XML-fil

Postades av 2004-07-08 08:15:08 - Andreas Håkansson

joaahl,

På <b>DataSet</b> klassen finns det två metoder som är dinna vänner i detta faller. Det heter <b>ReadXml</b> och <b>WriteXml</b>. Båda metoderna har en rad olika överlagringar (samma metod fast den tar olika antal och typer av parametrar) som gör att du kan läsa och skriva till&från många olika källor (filer, strömmar etc).


[C#]

DataSet mySet = new DataSet();
mySet.ReadXml("filename.xml");

// Gör något med ditt dataset och värdet från
// textboxen.

mySet.WriteXml("filename.xml");


[VB.NET]
Dim mySet As New DataSet()
mySet.ReadXml("filename.xml")

' Gör något med ditt dataset och värdet från
' textboxen.

mySet.WriteXml("filename.xml")


Hoppas det löser sig!


Svara

Sv: Ladda, ändra, spara XML-fil

Postades av 2004-07-08 11:58:32 - Joacim Ahlberg

(C#)

Jo just det... men det verkar som om jag bara kan adda nya noder men inte editera befintlig som visas.
Dessutom så bör det in ett schema för att skrika till om jag addar nod med samma id, men det är nästa puck.
Sedan fick jag rådet att lägga in setet i ett XML doc för att arbeta med datat men med samma resultat, lägga till går bra men inte editera.

Förstår du vad jag menar eller skall jag hacka ihop ett nytt exempel som visar var jag går bet?
Det är precis därr du hoppar över kod som det inte är korrekt.

mvh
Jocke


Svara

Sv: Ladda, ändra, spara XML-fil

Postades av 2004-07-08 12:01:29 - Andreas Håkansson

joaahl,

Visa gärna hur du försöker ändra befintliga noder i det inladdade dokumentet, för det skall gå. Och med <b>ReadXml</b> och <b>WriteXml</b> kan man välja att ladda in / spara ut ett schema med, slå upp metoderna i dokumentationen och titta på de överlagringar som finns.


Svara

Sv: Ladda, ändra, spara XML-fil

Postades av 2004-07-08 12:59:16 - Joacim Ahlberg

Jag är misstänksam på datavyn... samt SetValue i update....
Har dock sett smidiga lösningar med typade dataset men då krävs en hel del ombyggnad på annat håll.

using System; 
using System.Collections; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Web; 
using System.Web.SessionState; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.HtmlControls; 
using System.Xml; 
// Filen är bantad för forumet
namespace joacim 
{ 
    /// <summary> 
    /// Summary description for hack. 
    /// </summary> 
    public class hack : System.Web.UI.Page 
    {

		private DataSet ds = new DataSet("poliser");
		private DataView dv;
		protected System.Web.UI.WebControls.DataGrid Grid;
		private XmlDataDocument xml = new XmlDataDocument();
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			if(!Page.IsPostBack) 
			{
				LoadGrid();
				BindGrid();
			} 
			else
			{
				LoadGrid();
			}
		}

		private void LoadGrid()
		{
			if( Session["data"] == null )
			{
				if(Page.IsPostBack)
				{
					// Session timeout...
				}

				ds.ReadXml(@"c:\inetpub\fil.xml");
				Session["data"] = ds;	
			}

			ds = (DataSet) Session["data"];
			DataTable dt = ds.Tables["polis"];
			dv = new DataView(dt);
		}
		
		private void BindGrid()
		{
			Session["data"] = ds;

			Grid.DataSource = dv;
			Grid.DataBind();
		}

		private void EditGrid(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			Grid.DataKeyField = "id";
			Grid.EditItemIndex = e.Item.ItemIndex;
			BindGrid();
		}

		private void UpdateGrid(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			string m_id;
			TextBox m_namn;

			m_id = e.Item.Cells[0].Text;
			m_namn = (TextBox) e.Item.Cells[1].Controls[0];	
	
			// Följande line verkar möjligen vara feltolkad av mig ??
			ds.Tables["polis"].Rows[Convert.ToInt32(m_id)].ItemArray.SetValue(m_namn.Text,1);
			ds.AcceptChanges();
			ds.WriteXml(@"c:\inetpub\fil2.xml"); // för test.. annars fil.xml

			Grid.EditItemIndex = -1;
			BindGrid();
		}

		private void CancelGrid(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
		{
			Grid.DataKeyField = "id";
			Grid.EditItemIndex = -1;
			BindGrid();
		}
	}


Svara

Sv: Ladda, ändra, spara XML-fil

Postades av 2004-07-08 13:02:08 - Joacim Ahlberg


Svara

Sv: Ladda, ändra, spara XML-fil

Postades av 2004-07-08 13:15:36 - Andreas Håkansson

joaahl ,

Två tips (hinner inte kolla din kod nu, måste avsluta lite kod som skall vidare till en annan kodare), men när du skriver in kod så kan du lägga det inom < code c# > </ code > (utan mellanslag) så blir det färgkodat. Mitt andra tips är att du kan redigera tidigare inlägg om du måste ändra (så som att komplettera) innehållet.

Ska se om jag hinner kolla igenom koden sen när jag kommer hem.


Svara

Sv: Ladda, ändra, spara XML-fil

Postades av 2004-07-09 20:13:18 - Joacim Ahlberg

Jag gör en ny förklaring på problemet och har härmed strippat bort ALLT lull lull.
Varför fungerar inte de befintliga Set och Get funktionerna?

Jo visst fungerar Get utmärkt men dennes kollega Set har jag inte klurat ut en workaround för ännu....


using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace joacim
{
	public class problem : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.TextBox txtShowValue;
		protected System.Web.UI.WebControls.Button btnSetValue;
		protected System.Web.UI.WebControls.Button btnGetValue;
	
		private DataSet ds = new DataSet();

		private void Page_Load(object sender, System.EventArgs e)
		{
			ds.ReadXml(@"c:\inetpub\data.xml");
		}

		#region Web Form Designer generated code
		#endregion

		private void btnSetValue_Click(object sender, System.EventArgs e)
		{
			// Set texten 'Olle' på rad 1 i tabell 'person' i kolumn 1
			ds.Tables["person"].Rows[1].ItemArray.SetValue("Olle",1); // INTE OK ??
			ds.AcceptChanges();
			ds.WriteXml(@"c:\inetpub\data.xml",XmlWriteMode.IgnoreSchema);
		}

		private void btnGetValue_Click(object sender, System.EventArgs e)
		{
			// Get texten 'Olle' på rad 1 i tabell 'person' i kolumn 1
			txtShowValue.Text = ds.Tables["person"].Rows[1].ItemArray.GetValue(1).ToString(); //OK		
		}
	}

	/**********************************************
	 *  data.xml
	 * ********************************************
		<?xml version="1.0" encoding="utf-8" ?> 
		<data>
			<person>
				<id>0</id>
				<namn>Klara</namn>
			</person>
			<person>
				<id>1</id>
				<namn>Elin</namn>
			</person>
		</data>
	***********************************************
	* problem.aspx innehållet
	***********************************************
		<form id="Form1" method="post" runat="server">
			<P>
				<asp:Button id="btnGetValue" runat="server" Text="Get"></asp:Button></P>
			<P>
				<asp:TextBox id="txtShowValue" runat="server"></asp:TextBox></P>
			<P>
				<asp:Button id="btnSetValue" runat="server" Text="Set"></asp:Button></P>
		</form>
	*/
}


Jag blir gråhårigare än nånsin.... :)

mvh
Jocke


Svara

Sv: Ladda, ändra, spara XML-fil

Postades av 2004-07-09 20:41:37 - Andreas Håkansson

Johan,

Du är väldigt närma, men komplicerar till det lite mer än vad som behövs. Nedan finner du ett exempel på hur man kan läsa & skriva till en XML från webbsidan. XML filen heter data.xml och ligger i rooten på webbprojektet.

[XML]

<?xml version="1.0" standalone="yes"?>
<books>
  <book>
    <name>Book 1</name>
    <author>Andreas</author>
  </book>
  <book>
    <name>Book 2</name>
    <author>Johan</author>
  </book>
</books>


[ASP.NET]
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebXMLEdit.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
	<head>
		<title>WebForm1</title>
		<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
		<meta name="CODE_LANGUAGE" Content="C#">
		<meta name="vs_defaultClientScript" content="JavaScript">
		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
	</head>
	<body>
		<form id="Form1" method="post" runat="server">
			<p>
				<asp:TextBox id="TextBox1" runat="server"></asp:TextBox></P>
			<p>
				<asp:Button id="Button1" runat="server" Text="Get"></asp:Button>&nbsp;
				<asp:Button id="Button2" runat="server" Text="Set"></asp:Button>
			</p>
		</form>
	</body>
</html>


[C#]
public class WebForm1 : System.Web.UI.Page
{
	protected System.Web.UI.WebControls.TextBox TextBox1;
	protected System.Web.UI.WebControls.Button Button1;
	protected System.Web.UI.WebControls.Button Button2;

	private DataSet xmlData = null;

	private void Page_Load(object sender, System.EventArgs e)
	{
		xmlData = new DataSet();
		xmlData.ReadXml(Server.MapPath(@"data.xml"));
	}

	#region Web Form Designer generated code

		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{    
			this.Button1.Click += new System.EventHandler(this.Button1_Click);
			this.Button2.Click += new System.EventHandler(this.Button2_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}

	#endregion

	private void Button1_Click(object sender, System.EventArgs e)
	{
		this.TextBox1.Text =
			(string)this.xmlData.Tables["Book"].Rows[0]["Name"];
	}

	private void Button2_Click(object sender, System.EventArgs e)
	{
		this.xmlData.Tables["Book"].Rows[0]["Name"] =
			this.TextBox1.Text;
		this.xmlData.WriteXml(Server.MapPath(@"data.xml"));
	}
}


Hoppas det löser sig!


Svara

Sv: Ladda, ändra, spara XML-fil

Postades av 2004-07-09 20:51:40 - Joacim Ahlberg

Jiipiiiiiiiiiiiiiiiiiiiieeeeeeeeeeeeeeeeeee!!!!

Men varför finns dessa Set och Get-funktioner om de inte går att köra??

Tack för den bit som fick allt annat arbete att fortlöpa utan ombyggnader....

Taaaack

mvh
Jocke


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 168
27 952
271 704
1 499
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies