Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何动态修改RDl文件中的连接字符串?_C#_Xml_Rdl_Reportbuilder3.0 - Fatal编程技术网

C# 如何动态修改RDl文件中的连接字符串?

C# 如何动态修改RDl文件中的连接字符串?,c#,xml,rdl,reportbuilder3.0,C#,Xml,Rdl,Reportbuilder3.0,我正在尝试修改RDL文件中的connectionString,该文件动态地由xml节点组成。但是我只能使用/检索根节点,我无法检索任何其他节点,例如,当我尝试检索connectString时,它显示为null XmlDocument xml = new XmlDocument(); xml.Load(selectedFiles[0].ToString()); var connectionString = xml.SelectSingleNode("/"); RDL文件的xml: <?x

我正在尝试修改RDL文件中的connectionString,该文件动态地由xml节点组成。但是我只能使用
/
检索根节点,我无法检索任何其他节点,例如,当我尝试检索connectString时,它显示为null

XmlDocument xml = new XmlDocument();
xml.Load(selectedFiles[0].ToString());
var connectionString = xml.SelectSingleNode("/"); 
RDL文件的xml:

<?xml version="1.0" encoding="utf-8"?>
<Report xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:cl="http://schemas.microsoft.com/sqlserver/reporting/2010/01/componentdefinition" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition">
  <AutoRefresh>0</AutoRefresh>
  <DataSources>
    <DataSource Name="DataSource1">
      <ConnectionProperties>
        <DataProvider>SQL</DataProvider>
        <ConnectString>Data Source=gbr-t-sql-001;Initial Catalog=Neptune2Dev</ConnectString>
        <IntegratedSecurity>true</IntegratedSecurity>
      </ConnectionProperties>
      <rd:SecurityType>Integrated</rd:SecurityType>
      <rd:DataSourceID>70fcaa8f-d76a-4919-a53c-ba313ca99926</rd:DataSourceID>
    </DataSource>
  </DataSources>
  <DataSets>
    <DataSet Name="DataSet1">
      <Query>
        <DataSourceName>DataSource1</DataSourceName>
        <QueryParameters>
          <QueryParameter Name="@profileID">
            <Value>=Parameters!profileID.Value</Value>
          </QueryParameter>
        </QueryParameters>
        <CommandType>StoredProcedure</CommandType>
        <CommandText>Report_BylineSummary</CommandText>

0
SQL
数据源=gbr-t-sql-001;初始目录=Neptune2Dev
真的
集成的
70fcaa8f-d76a-4919-a53c-ba313ca99926
数据源1
=参数!profileID.Value
存储过程
报告摘要

您需要执行Xpath查询以获取连接字符串。应该是这样的:

/报表/DataSources[@Name=“DataSource1”]/ConnectionProperties/ConnectString

但是要注意正确处理名称空间

见本文:


您需要执行Xpath查询以获取连接字符串。应该是这样的:

/报表/DataSources[@Name=“DataSource1”]/ConnectionProperties/ConnectString

但是要注意正确处理名称空间

见本文:


它显示为null var connectionString=xml。选择SingleNode(“/Report/DataSources[@Name=\“DataSource1\”]/ConnectionProperties/ConnectString”);正如我所说的,您必须正确地处理名称空间才能使其工作。它显示为null var connectionString=xml.SelectSingleNode(“/Report/DataSources[@Name=\“DataSource1\”]/ConnectionProperties/ConnectString”);正如我所说的,您必须正确地处理名称空间才能使其工作。