[ASP/C#] Output XML

Pagina: 1
Acties:

  • LMD
  • Registratie: September 2002
  • Niet online

LMD

Complex Minded

Topicstarter
Voor school ben ik bezig met een opdracht.
Het is de bedoeling dat je na een query de gevraagde gegevens als XML op het scherm te zien krijgt.
Ik werk met een DBaccess Database.

Momenteel heb ik het voorelkaar om een query in te voeren en de gegevens dan terug te krijgen.
Om dit te testen zet ik het in een DataGrid.

Deze functie gebruik ik om de data uit de database te krijgen.
code:
1
2
3
4
5
6
7
8
9
        public DataSet GetData(string query)
        {
            oleDbConnection1.Open();
            DataSet TempDataSet = new DataSet();
            oleDbDataAdapter1.SelectCommand = new OleDbCommand(query, oleDbConnection1);
            oleDbDataAdapter1.Fill(TempDataSet);
            oleDbConnection1.Close();
            return TempDataSet;
        }

Met deze code vraag ik de data op en zet ik het in een datagrid.
code:
1
2
3
4
5
6
7
8
9
        private void Button2_Click(object sender, System.EventArgs e)
        {
            DataSet mijnDataSet = new DataSet();
            string blaat = TextBox1.Text.ToString();
            mijnDataSet = GetData(blaat);
            DataView source = new DataView(mijnDataSet.Tables[0]);
            DataGrid1.DataSource = source;
            DataGrid1.DataBind();
        }


Op google liep ik tegen deze link aan http://www.dotnetjunkies....c/Xml/SaveDataSetXML.aspx

Ik krijg het niet voor elkaar om met deze gegevens/informatie om XML code te laten zien op het scherm.

Heb al meerdere dingen geprobeerd.
Op google is er weinig te vinden.
Meeste gaan om een XML in te lezen in een Dataset.
En ik moet het net anderom hebben :(

Nothing more to say...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

Ik krijg het niet voor elkaar om met deze gegevens/informatie om XML code te laten zien op het scherm.
Je kan dataset.writeXML gebruiken. Vervolgens pak je deze output en zet deze op het scherm. :P

Hmmm.. Whoami's methode is makkelijker.. :X
* gorgi_19 gaat maar eens een stukje applicatie aanpassen.. :P

[ Voor 31% gewijzigd door gorgi_19 op 07-01-2004 10:46 . Reden: 't is simpeler dan ik dacht :P ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Je hebt je gegevens in een DataSet ingelezen. Kijk eens naar de method ReadXml(), WriteXml().
Je dataset gebruikt eigenlijk intern XML om de gegevens intern op te slaan.

En je hebt ook nog een GetXml() member method, die je gegevens als een XML string teruggeeft.

[ Voor 22% gewijzigd door whoami op 07-01-2004 10:40 ]

https://fgheysels.github.io/


  • LMD
  • Registratie: September 2002
  • Niet online

LMD

Complex Minded

Topicstarter
gorgi_19 schreef op 07 januari 2004 @ 10:37:
[...]

Je kan ranzig doen en dataset.writeXML gebruiken. Vervolgens pak je deze output en zet deze op het scherm. Kleine tussenoplossing, wel snel. :P
Zal even kijken. Waar kan ik de output het beste in weergeven.
Is een WebApplicatie.
whoami schreef op 07 januari 2004 @ 10:37:
Je hebt je gegevens in een DataSet ingelezen. Kijk eens naar de method ReadXml(), WriteXml().
Je dataset gebruikt eigenlijk intern XML om de gegevens intern op te slaan.
Dat weet ik dat een Dataset is opgebouwd uit een xml structuur.
Enige is hoe krijg ik dit netjes op het scherm. Zal die methodes eens bekijken en mee knoeien.

Nothing more to say...


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
code:
1
Response.Write (myDataSet.GetXml() )

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 07 januari 2004 @ 10:42:
code:
1
Response.Write (myDataSet.GetXml() )
En Response.Contenttype goedzetten voor XML; ff vergeten welke dat precies was.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • LMD
  • Registratie: September 2002
  • Niet online

LMD

Complex Minded

Topicstarter
gorgi_19 schreef op 07 januari 2004 @ 10:43:
[...]

En Response.Contenttype goedzetten voor XML; ff vergeten welke dat precies was.
Hmmm even zoeken daarop, zie als ik de bron bekijk wel de XML code :)
En dat moet ik dus nog even weergeven op de juiste manier.

edit:

Is het mogelijk als je op de knop druk dat je een nieuw venster krijgt met daarin de code? Ken de basis van .net ondertussen.

[ Voor 19% gewijzigd door LMD op 07-01-2004 10:50 ]

Nothing more to say...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

Aan de andere kant kan ik hem ook wel even opzoeken in mijn applicatie.. :P

Visual Basic .NET:
1
Response.ContentType = "text/xml"
edit:

Is het mogelijk als je op de knop druk dat je een nieuw venster krijgt met daarin de code? Ken de basis van .net ondertussen.
Ja; gewoon een linkbutton gebruiken en hier de target van instellen? :?

* gorgi_19 pokes whoami (en anderen) :P

Wat vind jij eigenlijk in dit soort gevallen; moet je hier een eigen HTTPHAndler voor schrijven, ipv Page te inheriten?

Persoonlijk vind ik dit wel netter en is het een stuk sneller (qua parsing). :)

[ Voor 91% gewijzigd door gorgi_19 op 07-01-2004 10:53 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
gorgi_19 schreef op 07 januari 2004 @ 10:49:

Wat vind jij eigenlijk in dit soort gevallen; moet je hier een eigen HTTPHAndler voor schrijven, ipv Page te inheriten?

Persoonlijk vind ik dit wel netter en is het een stuk sneller (qua parsing). :)
Euh, daar heb ik geen ervaring mee. Hou zou je dat dan doen?

https://fgheysels.github.io/


  • LMD
  • Registratie: September 2002
  • Niet online

LMD

Complex Minded

Topicstarter
Het gaat mij er niet om hoelang het duurt voor het is uitgevoerd.
Zolang ik maar op een nette manier de XML code te zien krijg.

Tevens is het mogelijk om de output in een nieuw venster te doen??
Dat je op knop druk en een nieuw venster opend?

Nothing more to say...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

Een klein voorbeeldje uit mijn applicatie :)

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Imports System.Web
Imports System.Web.SessionState

Namespace MyNameSpace
    Public Class ErrorHTTPHandler
        Implements IHttpHandler, IRequiresSessionState

          Public ReadOnly Property IsReusable() As Boolean Implements System.Web.IHttpHandler.IsReusable
            Get
                Return True
            End Get
        End Property

        Public Sub ProcessRequest(ByVal context As System.Web.HttpContext) Implements System.Web.IHttpHandler.ProcessRequest

            context.Response.Write("<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">")
            context.Response.Write("<HTML>")
            context.Response.Write("<HEAD>")
            context.Response.Write("<title>----------------------</title>")
            context.Response.Write("</HEAD>")
            context.Response.Write("<body>")
            context.Response.Write("<div class=""top""></div>")
            context.Response.Write("<div class=""border""></div>")
            context.Response.Write("<div class=""body"">")
            context.Response.Write("<div class=""topbox"">Fout opgetreden</div>")
            context.Response.Write("<div class=""errorbox"">")
             context.Response.Write(<br>FOUTMELDING!!!<br>" & vbCrLf)
            context.Response.Write("</div>")
            context.Response.Write("</div>" & vbCrLf)
            context.Response.Write("</body>")
            context.Response.Write("</HTML>" & vbCrLf)

        End Sub
    End Class
End Namespace

Vervolgens kan je deze aanroepen door middel van een 'nepbestand' aan te maken. Deze bestaat niet echt, maar wordt aangemeldt in je web.config.
XML:
1
2
3
<httpHandlers>
  <add verb="*" path="errorpage.aspx" type="ProSim.Controls.ErrorHTTPHandler, ProSim.Controls"/>
</httpHandlers> 

Als er nu gesurft wordt naar errorpage.aspx; wordt deze handler aangeroepen. Op schijf bestaat er geen bestand met de naam errorpage.aspx. Het voordeel is dat je niet alle zut hebt van System.Web.UI.Page; ik vraag me echter af of er nog meer nadelen zijn. :)

[ Voor 35% gewijzigd door gorgi_19 op 07-01-2004 11:02 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
LMD schreef op 07 januari 2004 @ 10:56:
Tevens is het mogelijk om de output in een nieuw venster te doen??
Dat je op knop druk en een nieuw venster opend?
Je zult daarvoor een stukje javascript nodig hebben (window.open()) oid, en daarin open je dan een andere ASPX pagina die de output toont.

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

LMD schreef op 07 januari 2004 @ 10:56:
Tevens is het mogelijk om de output in een nieuw venster te doen??
Dat je op knop druk en een nieuw venster opend?
Zie mijn eerdere edit; gewoon een linkbutton gebruiken en een targeturl?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • LMD
  • Registratie: September 2002
  • Niet online

LMD

Complex Minded

Topicstarter
Hmmm moet ik de code even omzetten van VB naar C#.

Gaat hier nu even mee bezig, Thanx.

Nothing more to say...


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
gorgi_19 schreef op 07 januari 2004 @ 11:00:
Een klein voorbeeldje uit mijn applicatie :)

Als er nu gesurft wordt naar errorpage.aspx; wordt deze handler aangeroepen. Op schijf bestaat er geen bestand met de naam errorpage.aspx. Het voordeel is dat je niet alle zut hebt van System.Web.UI.Page; ik vraag me echter af of er nog meer nadelen zijn. :)
Interessant, je genereert dus eigenlijk een pagina. Als ik tijd heb, ga ik er vanavond eens mee aan de slag.

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

LMD schreef op 07 januari 2004 @ 11:02:
Hmmm moet ik de code even omzetten van VB naar C#.

Gaat hier nu even mee bezig, Thanx.
Wat ik gaf, was een voorbeeld voor het gebruik van een HTTPHandler. Of je hier gelijk mee moet beginnen, weet ik niet. :) Het is imho (en voor mij op dit moment) wel de netste oplossing.
whoami schreef op 07 januari 2004 @ 11:03:
Interessant, je genereert dus eigenlijk een pagina. Als ik tijd heb, ga ik er vanavond eens mee aan de slag.
Inderdaad. :) Voordeel is iig dat je geen, of minder gezeur hebt met bestaande pagina's. Het nadeel wat ik ben tegen gekomen is dat je geen webcontrols kan toevoegen, welke tussen
HTML:
1
2
3
<form runat=server>
...
</form>

moet staan. :'(

[ Voor 50% gewijzigd door gorgi_19 op 07-01-2004 11:06 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
gorgi_19 schreef op 07 januari 2004 @ 11:02:
[...]

Zie mijn eerdere edit; gewoon een linkbutton gebruiken en een targeturl?
Maar, dan open je die pagina toch niet in een nieuw scherm (ie, een nieuwe 'instance' van je browser)?

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 07 januari 2004 @ 11:04:
[...]


Maar, dan open je die pagina toch niet in een nieuw scherm (ie, een nieuwe 'instance' van je browser)?
Je hebt gelijk, ik was in de war met een System.Web.UI.Webcontrols.Hyperlink :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • LMD
  • Registratie: September 2002
  • Niet online

LMD

Complex Minded

Topicstarter
Heeft iemand toevallig die code dan om een nieuw venster te openen?

Dat je de output in het nieuwe venster krijgt?

Nothing more to say...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

LMD schreef op 07 januari 2004 @ 11:36:
Heeft iemand toevallig die code dan om een nieuw venster te openen?

Dat je de output in het nieuwe venster krijgt?
Gewoon een linkje maken :) Of met window.open werken. :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
gorgi_19 schreef op 07 januari 2004 @ 11:00:
Een klein voorbeeldje uit mijn applicatie :)

HttpHandler stuff
Waarom implementeer je daar eigenlijk de IRequiresSessionState interface? Ik zie je nl. nergens gebruik maken van Sessions. :?

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:28

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 07 januari 2004 @ 21:17:
[...]


Waarom implementeer je daar eigenlijk de IRequiresSessionState interface? Ik zie je nl. nergens gebruik maken van Sessions. :?
Klopt. Mijn originele stukje code gebruikte wel sessions om bepaalde data door te geven. Ik heb alleen het stukje code iets gestript (bedrijfsnaam, urls, overbodige code, etc.) om de essentie weer te geven

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1