Goedemiddag,
Ik zit met het volgende probleem: In een 3-tier webapplicatie wil ik data uit SQL Server wegschrijven naar XML zodat ik mbv XSLT aan de presentatie kant kan kiezen hoe ik zaken wil weergeven.
De applicatie wordt geschreven in C# (.Net 1.1) en het betreft SQL Server 2000.
Hieronder geef ik weer hoe er per laag met de data wordt omgegaan:
DAL
BL
Er wordt daadwerkelijk data opgehaald uit SQL Server en deze wordt weggeschreven
naar de harde schijf.
Maar de inhoud van dit bestand is niet echt wat ik verwacht:
Schijnbaar doe ik ergens iets verkeerd (het ligt niet aan de gekozen encoding bij het wegschrijven). Google levert wel enkele resultaten op, maar helaas geen oplossingen. Heeft iemand hier enige ervaring mee?
Ik zit met het volgende probleem: In een 3-tier webapplicatie wil ik data uit SQL Server wegschrijven naar XML zodat ik mbv XSLT aan de presentatie kant kan kiezen hoe ik zaken wil weergeven.
De applicatie wordt geschreven in C# (.Net 1.1) en het betreft SQL Server 2000.
Hieronder geef ik weer hoe er per laag met de data wordt omgegaan:
code:
1
2
3
4
5
| SELECT
...
FROM #tmp
FOR XML EXPLICIT |
DAL
C#:
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
| public XPathDocument getImbalancePriceXMLByDate(DateTime startDate, DateTime endDate) { //Vars XmlReader xmlReader = null; XPathDocument xpathDoc = null; //set up connection SqlConnection myConnection = new SqlConnection(_connStr); //create sql command for stored procedure SqlCommand myCommand = new SqlCommand("uspCreateXMLImbalancePriceByDate", myConnection); myCommand.CommandType = CommandType.StoredProcedure; //Add parameters myCommand.Parameters.Add("@strFromDate", SqlDbType.DateTime).Value = startDate; myCommand.Parameters.Add("@strUntilDate", SqlDbType.DateTime).Value = endDate; try { myConnection.Open(); xmlReader = myCommand.ExecuteXmlReader(); xpathDoc = new XPathDocument(xmlReader, XmlSpace.Preserve); } catch (Exception ex) { throw (ex); } finally { myConnection.Close(); } return xpathDoc; } |
BL
C#:
1
2
3
4
5
| public XPathDocument getImbalancePriceXMLByDate(DateTime startDate, DateTime endDate) { XPathDocument xml = data.getImbalancePriceXMLByDate(startDate, endDate); return xml; } |
Er wordt daadwerkelijk data opgehaald uit SQL Server en deze wordt weggeschreven
C#:
1
| XmlTextWriter writer = new XmlTextWriter(xmlLocation, Encoding.UTF8); |
naar de harde schijf.
Maar de inhoud van dit bestand is niet echt wat ik verwacht:
XML:
1
2
3
| <NewDataSet> <ImbalancePrice> <XML_F52E2B61-18A1-11d1-B105-00805F49916B> |
Schijnbaar doe ik ergens iets verkeerd (het ligt niet aan de gekozen encoding bij het wegschrijven). Google levert wel enkele resultaten op, maar helaas geen oplossingen. Heeft iemand hier enige ervaring mee?