Как отредактировать запрос SQL, который получает его из файла xml - PullRequest
1 голос
/ 06 мая 2020

У меня есть несколько файлов. xml с разной моделью, и все они содержат запрос SQL, который похож на один ниже, и мне нужно запустить их в C#, но поскольку этот файл. xml является принадлежать панели инструментов, мне нужно, чтобы какая-то его часть была в select, например, только a, b, c, d, если мой запрос выбирает a, b, c, d, e, f, g из x

<Dashboard>
    <Title Visible="false" Text="Management Dashboard" />
    <DataSources>
        <SqlDataSource Name="Perfomr" >ComponentName="DataSource1">
            <Connection Name="ConnectionString" FromAppConfig="true" />
            <Query Type="CustomSqlQuery" Name="myquery">
                <Sql>select  a,b,c,d,e,f,g from x</Sql>
            </Query>
            <ConnectionOptions CloseConnection="true" />
        </SqlDataSource>
    </DataSources>
    <Parameters>
        <Parameter Name="SDate" Type="System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Value="2018-09-01T00:00:00" Description="Start Date" />
        <Parameter Name="EDate" Type="System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Description="End Date" />
    </Parameters>
    <Items>
        <Chart ComponentName="chartDashboardItem3" Name="2G CSSR" ShowCaption="false" ParentContainer="pageDashboardItem1" DataSource="DataSource1" DataMember="Global_All_Layer_Day">
            <DataItems>
                <Dimension DataMember="date_id" DateTimeGroupInterval="None" DefaultId="DataItem0" />
                <Dimension DataMember="a" DefaultId="DataItem1" />
                <Dimension DataMember="d" DateTimeGroupInterval="None" DefaultId="DataItem4" /> 
                <Dimension DataMember="a" DefaultId="DataItem5" />
                <Measure DataMember="b" DefaultId="DataItem2" />
                <Measure DataMember="c" DefaultId="DataItem6" />
            </DataItems>
 .....

1 Ответ

0 голосов
/ 06 мая 2020
           String filename = "Dashboard.xml";

            XPathDocument document = new XPathDocument(filename);
            XPathNavigator navigator = document.CreateNavigator();
            XPathNodeIterator nodes = navigator.Select("/Dashboard/DataSources/SqlDataSource/Query/Sql");

            while (nodes.MoveNext())
            {
                Console.WriteLine("SQL Query : " + nodes.Current.InnerXml);
            }
...