|
|
|
 |
 |
Исходник |
 |
|
 |
 |
|
Автор:
|
|
|
Название:
|
XQuery + DataGrid |
|
Дата:
|
09 January 2007 |
|
Описание: |
Пример объединяющего XQuery-запроса к двум XML файлам с выводом
резельтата в DataGrid(для работы необходима библиотека Microsoft.Xml.XQuery
в папке Bin)
|
| |
Разместить ссылку на этот исходник в форуме вы можете вставив в текст сообщения
следующую строку:
[CODEPOST ID=204]XQuery + DataGrid[/CODEPOST] |
| Оценка: |
Проголосовало 3 посетителей, средняя оценка 3.67 |
| Оценить: |
|
1 Build.bat
2 set qq="C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc"
3 del bin\WebForm1.aspx.dll
4 cls
5 %qq% /target:library /out:bin\WebForm1.aspx.dll WebForm1.aspx.cs /r:System.Web.dll /r:bin\Microsoft.Xml.XQuery.dll
6 //--------------------
7 T1.xml
8
9 <?xml version="1.0" standalone="yes"?>
10 <NewDataSet>
11 <Table>
12 <kod>1</kod>
13 <dat>2004</dat>
14 </Table>
15 <Table>
16 <kod>2</kod>
17 <dat>2005</dat>
18 </Table>
19 <Table>
20 <kod>3</kod>
21 <dat>2006</dat>
22 </Table>
23 <Table>
24 <kod>1</kod>
25 <dat>2004</dat>
26 </Table>
27 <Table>
28 <kod>2</kod>
29 <dat>2005</dat>
30 </Table>
31 <Table>
32 <kod>3</kod>
33 <dat>2006</dat>
34 </Table>
35 </NewDataSet>
36 //---------------------
37 T2.xml
38
39 <?xml version="1.0" standalone="yes"?>
40 <NewDataSet>
41 <Table>
42 <kod>1</kod>
43 <naim>aaa</naim>
44 </Table>
45 <Table>
46 <kod>2</kod>
47 <naim>bbb</naim>
48 </Table>
49 <Table>
50 <kod>3</kod>
51 <naim>ccc</naim>
52 </Table>
53 </NewDataSet>
54
55 //---------------------
56 WebForm1.aspx
57
58 <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="XQ03.WebForm1" %>
59 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
60 <HTML>
61 <HEAD>
62 <title>WebForm1</title>
63 <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
64 <meta name="CODE_LANGUAGE" Content="C#">
65 <meta name="vs_defaultClientScript" content="JavaScript">
66 <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
67 </HEAD>
68 <body MS_POSITIONING="GridLayout">
69 <form id="Form1" method="post" runat="server">
70 <asp:DataGrid id="DataGrid1" style="Z-INDEX: 102; LEFT: 24px; POSITION: absolute; TOP: 88px" runat="server"
71 Height="240px" Width="552px"></asp:DataGrid>
72 </form>
73 </body>
74 </HTML>
75
76
77 WebForm1.aspx.cs
78
79 using System;
80 using System.Collections;
81 using System.ComponentModel;
82 using System.Data;
83 using System.Drawing;
84 using System.Web;
85 using System.Web.SessionState;
86 using System.Web.UI;
87 using System.Web.UI.WebControls;
88 using System.Web.UI.HtmlControls;
89 using Microsoft.Xml.XQuery;
90 using System.IO;
91 using System.Xml;
92
93 namespace XQ03
94 {
95 /// <summary>
96 /// Summary description for WebForm1.
97 /// </summary>
98 public class WebForm1 : System.Web.UI.Page
99 {
100 protected System.Web.UI.WebControls.DataGrid DataGrid1;
101
102 private void Page_Load(object sender, System.EventArgs e)
103 {
104 DataSet DS=new DataSet();
105
106 XQueryNavigatorCollection oXQ = new XQueryNavigatorCollection();
107 string strXML = "";
108 string fileName1="c:\\Test\\T1.xml";
109 string alias1 = "MyDataTest.xml";
110 string fileName2="C:\\Test\\T2.xml";
111 string alias2 = "MyDatattt.xml";
112
113 oXQ.AddNavigator( fileName1, alias1 );
114 oXQ.AddNavigator( fileName2, alias2 );
115
116 string strQuery = "<NewDataSet> { " +
117 " let $bb := document(\"MyDataTest.xml\")/*/* " +
118 " let $cc := document(\"MyDatattt.xml\")/*/* " +
119 " for $c in $cc " +
120 " for $b in $bb " +
121 " where $c/kod = $b/kod " +
122 " return <Table> { $b/nazv,$b/dat,$c/naim } </Table> " +
123 " }</NewDataSet> ";
124
125 XQueryExpression xExpression = new XQueryExpression(strQuery);
126 strXML = xExpression.Execute(oXQ).ToXml();
127 StringReader strReader = new StringReader(strXML);
128 XmlTextReader reader = new XmlTextReader(strReader);
129 DS.ReadXml(reader);
130 DataGrid1.DataSource = DS.Tables[0];
131 DataGrid1.DataBind();
132
133 }
134
135 #region Web Form Designer generated code
136 override protected void OnInit(EventArgs e)
137 {
138 InitializeComponent();
139 base.OnInit(e);
140 }
141
142 private void InitializeComponent()
143 {
144 this.Load += new System.EventHandler(this.Page_Load);
145
146 }
147 #endregion
148 }
149 }
150 |
| Вернуться к списку исходников в категории DataGrid, DataList, Repeater |
|
|
 |
 |
 |
 |
|
|