On olemassa .aspx tietokanta serverillä ja mun pitäis tehdä sellainen sivu jossa on textboxi ja siihen voi kirjoittaa vaikka "50" ja sitten painaa lähetys-nappia niin se muuttaa tietokannassa olevan "jou":n arvon -> 50.
Esimerkki miltä tietokanta näyttää kun sen avaa IE:llä:
<?xml version="1.0" encoding="utf-8" ?> - <data> <jou>40</jou> <juttu>344</juttu> </data>
System.Xml kirjaston funktioilla onnistuu
Hieman vinkkiä:
XmlDocument myXml = XmlDocument.Load("filu.xml");
XmlNode root = XmlDocument.DocumentElement;
XmlNodeList list = root.SelectNodes("jou");
//olettaen että on vain yksi "jou" tagi...
list.Items(0).InnerText = txtTekstiboksi.Text;
...
myXml.Save("filu.xml");
Vai niin. En tajunnut mitään tuosta. :D
Tietokannan tiedostoformaatti on .aspx, ei .xml.
JussiR kirjoitti:
Tietokannan tiedostoformaatti on .aspx, ei .xml.
Ei se oo formaatti vaan pääte. Vaihat vaan "filu.xml":n filu.aspx:ksi tms.
Aijaa, ok.
Mä oon yrittäny tuota tietokantaa muokata monta kertaa eri tavoilla, mutta aina on tullut "Login failed" tjsp. virheitä.
Oletkohan nyt varma siitä mitä olet tekemässä?
Ensimmäisessä postauksessasi on pätkä xml-tiedostosta (joka voidaan kyllä mieltää tietokannaksi, vaikka siitä yleensä ei sitä nimitystä käytetä)
aspx-tiedostot taas ovat .net ympäristön käyttöliittymätiedostoja (suomeksi www-sivuja). Jotenkin oletin, että .NET ympäristössä liikutaan ja laitoin pätkän C#-koodia.
Tokihan sinulla voi olla .aspx päätteinen tiedosto, jossa on xml-muotoista dataa, mutta se ei kuulosta oikein mielekkäältä :)
Eli millä oikein olet käpistämässä ja mitä?
Millä tahansa ohjelmalla haluaisin muokata.
Eipä minulle edelleen selvinnyt mistä on oikein kysymys. Voitko nyt tarkemmin selvittää millä olet tuota "tietokantaa" yrittänyt muokata? Ja jos sanot että sinulla on ".aspx tietokanta", luulenpa että kyseessä on jonkin sortin väärinkäsitys. Siis missä yhteydessä tulee tuo "login failed"?
Login failed tulee, jos yritän winsockilla muokata "POST" komennolla tai jos käytän jotain Database Editor ohjelmaa.
Etkö voi esim. msinetillä sitä ajaa?
tietokanta.aspx?tunnus=tun&salasana=1234
Tollain vaan?
LazyJones kirjoitti:
...
list.Items(0).InnerText = txtTekstiboksi.Text;
...
Vaihtaisin ton Items(0) > Item(0)
Eli sinulla on ASP.NET-veppisiivu joka sattuu palauttamaan XML-tietoa, jos nyt yhtään kristallipalloni toimi oikein. Se mitä siellä alla on tai miten sitä siellä käsitellään riippuu sitten ihan allaolevasta järjestelmästä. Järjestelmän tekijä kertonee miten sitä voi muokata, jos se on sellaiseksi tarkoitettu.
Jaajaa. Pitäisikö tuo "data" - kohta sisällyttää koodiin?
Heippa JussiR!
Mikäli kyseessä on localhost niin 'Login failed' jutska hoituu lisäämällä
web.config -tiedosto kansioon, jossa matsku fyysisesti sijaitsee.
web.config:
lainaus:
(varsin avoimet valtuudet)
<?xml version="1.0" encoding="UTF-8" ?> <configuration> <appSettings> <add key="root" value='Server.MapPath()'/> </appSettings> <system.web> <sessionState mode="InProc" cookieless="true" timeout="20" /> <authentication mode="Windows"> <forms name="*.*" timeout="999999" /> </authentication> <authorization> <allow users="*" /> </authorization> </system.web> </configuration>
Heippa taas JussiR!
tässä olisi hieman osviittaa .xml muokkaamiseen...
lainaus:
SimppeliXmlEditori.aspx:
(in C#)<%@ Page Language="C#" AspCompat="true" Debug="true" %> <%@ import Namespace="System.IO" %> <%@ import Namespace="System.Threading" %> <%@ import Namespace="System.Xml" %> <%@ import Namespace="System.Xml.XPath" %> <%@ import Namespace="System.Xml.Xsl" %> <script runat="server"> void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack){ Page.RegisterStartupScript("SetFocus", "<script>document.getElementById('" + TextBox1.ClientID + "').focus();" + "<" + "/script>"); } Label1.Text = ""; Response.Write(""); } void Button1_Click(object sender, EventArgs e) { if (TextBox1.Text !="" & TextBox2.Text !="") { XmlDocument doc = new XmlDocument(); doc.Load(Server.MapPath("testi.xml")); XmlNode root = doc.DocumentElement; XmlNodeList list = root.SelectNodes("jou"); int j=0; for (int i=0;(i < list.Count);i++) { if (list.Item(i).InnerText == TextBox1.Text) { list.Item(i).InnerText = TextBox2.Text; j++; } } if (j == 0) { if (list.Count == 1) { Response.Write("'jou' tagi ei sisältänyt" + "</br>" + "arvoa: " + TextBox1.Text); Label1.Text = "<a href='http://localhost/testi.html'>tsekkaa 'jou' tagin arvo</a>"; } else { Response.Write("'jou' tagit eivät sisältäneet" + "</br>" + "arvoa: " + TextBox1.Text); Label1.Text = "<a href='http://localhost/testi.html'>tsekkaa 'jou' tagien arvot</a>"; } TextBox1.Text = ""; TextBox2.Text = ""; return; } doc.Save(Server.MapPath("testi.xml")); Thread.Sleep(1000); string filename = Server.MapPath("testi.xml"); string stylesheet = Server.MapPath("testi.xslt"); XslTransform xslt = new XslTransform(); xslt.Load(stylesheet); XPathNavigator xsltNav; xslt.Transform(filename, Server.MapPath("testi.html"), null); if (j == 1){ Response.Write("'jou' tagin arvo: " + TextBox1.Text + "</br>" + "vaihdettu arvoksi: " + TextBox2.Text); } else{ Response.Write("'jou' tagien arvot: " + TextBox1.Text + "</br>" + "vaihdettu arvoon: " + TextBox2.Text); } Label1.Text = "<a href='http://localhost/testi.html'>testi.html</a>"; TextBox1.Text = ""; TextBox2.Text = ""; } else { if (TextBox1.Text == "" & TextBox2.Text != "") { Response.Write("Korvattava arvo puuttuu!"); } else if (TextBox1.Text != "" & TextBox2.Text == "") { Response.Write("Korvaava arvo puuttu!"); } else { Response.Write("Ei mitään tehtävää!"); } } } </script> <html> <head> </head> <body> <form runat="server"> <p font-color="red"> <strong>SIMPPELI XML EDITORI<br /> <br /> Vaihda</strong> <br /> tämä arvo tähän arvoon<br /> <asp:TextBox id="TextBox1" tabIndex="1" runat="server" Width="82px"></asp:TextBox> <asp:TextBox id="TextBox2" tabIndex="2" runat="server" Width="83px"></asp:TextBox> <asp:Button id="Button1" onclick="Button1_Click" tabIndex="3" runat="server" Text="Anna palaa"></asp:Button> <br /> <asp:Label id="Label1" runat="server" forecolor="Black"></asp:Label> <br /> </p> </form> </body> </html>
lainaus:
testi.xml:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <data> <jou>123</jou> <juttu>340</juttu> <jou>456</jou> <juttu>341</juttu> <jou>789</jou> <juttu>342</juttu> <jou>012</jou> <juttu>343</juttu> <jou>012</jou> <juttu>344</juttu> </data>
lainaus:
testi.xslt:
<?xml version="1.0" encoding="utf-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/xhtml1/strict"> <xsl:output method="html" indent="yes" /> <xsl:template match="/"> <html> <body> <b>jou tagit:</b><br></br> <xsl:apply-templates select="data" /> <a href="http://localhost/testi.xml">testi.xml</a><br></br> <a href="http://localhost/SimppeliXmlEditori.aspx">SimppeliXmlEditori.aspx</a><br></br> </body> </html> </xsl:template> <xsl:template match="data"> <xsl:apply-templates/> </xsl:template> <xsl:template match="juttu"> <br><xsl:value-of select="jou" /></br> </xsl:template> </xsl:stylesheet>
lainaus:
testi.html:
<html xmlns="http://www.w3.org/TR/xhtml1/strict"> <head> </head> <body> <b>jou tagit:</b> <br /> 123<br /> 456<br /> 789<br /> 012<br /> 012<br /> <a href="http://localhost/testi.xml">testi.xml</a> <br /> <a href="http://localhost/SimppeliXmlEditori.aspx">SimppeliXmlEditori.aspx</a> <br /> </body> </html>
Aihe on jo aika vanha, joten et voi enää vastata siihen.