首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

看看小弟我的这个修改xml语句哪错了

2012-03-24 
看看我的这个修改xml语句哪错了xml文档文件为rdlc文件XML code?xml version1.0 encodingutf-8?Re

看看我的这个修改xml语句哪错了
xml文档文件为rdlc文件

XML code
<?xml version="1.0" encoding="utf-8"?><Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">  <DataSources>    <DataSource Name="MESDATEConnectionString">      <rd:DataSourceID>8c23ce1a-60cc-4401-b6e8-5abf69dd5c76</rd:DataSourceID>      <ConnectionProperties>        <DataProvider>SQL</DataProvider>        <ConnectString />      </ConnectionProperties>    </DataSource>  </DataSources>  <InteractiveHeight>29.7cm</InteractiveHeight>  <rd:DrawGrid>true</rd:DrawGrid>  <InteractiveWidth>21cm</InteractiveWidth>  <rd:GridSpacing>0.25cm</rd:GridSpacing>  <rd:SnapToGrid>true</rd:SnapToGrid>  <RightMargin>2.5cm</RightMargin>  <LeftMargin>2.5cm</LeftMargin>  <BottomMargin>2.5cm</BottomMargin>  <rd:ReportID>bad1fda3-7911-4f65-9a69-8a153762288f</rd:ReportID>  <PageWidth>21cm</PageWidth>  <DataSets>    <DataSet Name="reportset1_bijiaojiqiselect">      <Fields>        <Field Name="bianhaoid">          <DataField>bianhaoid</DataField>          <rd:TypeName>System.Int32</rd:TypeName>        </Field>        <Field Name="datatype">          <DataField>datatype</DataField>          <rd:TypeName>System.Double</rd:TypeName>        </Field>      </Fields>      <Query>        <DataSourceName>MESDATEConnectionString</DataSourceName>        <CommandType>StoredProcedure</CommandType>        <CommandText>dbo.bijiaojiqiselect</CommandText>        <rd:UseGenericDesigner>true</rd:UseGenericDesigner>      </Query>      <rd:DataSetInfo>        <rd:DataSetName>reportset1</rd:DataSetName>        <rd:TableName>bijiaojiqiselect</rd:TableName>        <rd:TableAdapterName>bijiaojiqiselectTableAdapter</rd:TableAdapterName>        <rd:TableAdapterFillMethod>Fill</rd:TableAdapterFillMethod>        <rd:TableAdapterGetDataMethod>GetData</rd:TableAdapterGetDataMethod>      </rd:DataSetInfo>    </DataSet>  </DataSets>  <Width>18.5cm</Width>  <Body>    <ColumnSpacing>1cm</ColumnSpacing>    <ReportItems>      <Textbox Name="x_note">        <Top>1.5cm</Top>        <Width>0.75cm</Width>        <Style>          <FontFamily>宋体</FontFamily>          <PaddingLeft>2pt</PaddingLeft>          <PaddingRight>2pt</PaddingRight>          <PaddingTop>2pt</PaddingTop>          <PaddingBottom>2pt</PaddingBottom>        </Style>        <ZIndex>1</ZIndex>        <CanGrow>true</CanGrow>        <Left>0.5cm</Left>        <Height>3.75661cm</Height>        <Value>数据类型 ``</Value>      </Textbox>      <Chart Name="chart1">        <Legend>          <Style>            <BorderStyle>              <Default>Solid</Default>            </BorderStyle>          </Style>          <Position>RightCenter</Position>        </Legend>        <CategoryAxis>          <Axis>            <Title>              <Caption>机器</Caption>            </Title>            <MajorGridLines>              <Style>                <BorderStyle>                  <Default>Solid</Default>                </BorderStyle>              </Style>            </MajorGridLines>            <MinorGridLines>              <Style>                <BorderStyle>                  <Default>Solid</Default>                </BorderStyle>              </Style>            </MinorGridLines>            <MajorTickMarks>Outside</MajorTickMarks>            <Min>0</Min>            <Visible>true</Visible>          </Axis>        </CategoryAxis>        <DataSetName>reportset1_bijiaojiqiselect</DataSetName>        <PlotArea>          <Style>            <BackgroundColor>LightGrey</BackgroundColor>            <BorderStyle>              <Default>Solid</Default>            </BorderStyle>          </Style>        </PlotArea>        <ThreeDProperties>          <Rotation>30</Rotation>          <Inclination>30</Inclination>          <Shading>Simple</Shading>          <WallThickness>50</WallThickness>        </ThreeDProperties>        <PointWidth>0</PointWidth>        <Subtype>Plain</Subtype>        <ValueAxis>          <Axis>            <Title />            <MajorGridLines>              <ShowGridLines>true</ShowGridLines>              <Style>                <BorderStyle>                  <Default>Solid</Default>                </BorderStyle>              </Style>            </MajorGridLines>            <MinorGridLines>              <Style>                <BorderStyle>                  <Default>Solid</Default>                </BorderStyle>              </Style>            </MinorGridLines>            <MajorTickMarks>Outside</MajorTickMarks>            <Min>0</Min>            <Margin>true</Margin>            <Visible>true</Visible>            <Scalar>true</Scalar>          </Axis>        </ValueAxis>        <Type>Column</Type>        <Width>14cm</Width>        <CategoryGroupings>          <CategoryGrouping>            <DynamicCategories>              <Grouping Name="chart1_CategoryGroup1">                <GroupExpressions>                  <GroupExpression>=Fields!bianhaoid.Value</GroupExpression>                </GroupExpressions>              </Grouping>              <Label>=Fields!bianhaoid.Value</Label>            </DynamicCategories>          </CategoryGrouping>        </CategoryGroupings>        <Palette>Default</Palette>        <ChartData>          <ChartSeries>            <DataPoints>              <DataPoint>                <DataValues>                  <DataValue>                    <Value>=(Sum(Fields!datatype.Value)* 100 \ 1) / 100</Value>                  </DataValue>                </DataValues>                <DataLabel>                  <Visible>true</Visible>                </DataLabel>                <Marker>                  <Size>6pt</Size>                </Marker>              </DataPoint>            </DataPoints>          </ChartSeries>        </ChartData>        <Style>          <BackgroundColor>White</BackgroundColor>          <FontFamily>宋体</FontFamily>        </Style>        <Title>          <Caption>各机器生产数据对比图</Caption>        </Title>        <Height>7.61905cm</Height>        <Left>2cm</Left>      </Chart>    </ReportItems>    <Height>8.25cm</Height>  </Body>  <Language>zh-CN</Language>  <TopMargin>2.5cm</TopMargin>  <PageHeight>29.7cm</PageHeight></Report> 


要修改的地方我用空格突出了

用下列代码修改
C# code
                      string x_note = DropDownList1.Text;            string time_ofdate = this.TextBox1.Text + "至" + this.TextBox2.Text;            string xmlpath = Server.MapPath("bijiaojiqi.rdlc");            XmlDocument xmldoc = new XmlDocument();            if (File.Exists(xmlpath))            {                xmldoc.Load(xmlpath);                //下面这句报错:未将对象引用设置到对象的实例                xmldoc.SelectSingleNode("/Report/Body/ReportItems/Textbox[@Name='x_note']/Value").InnerText = "数据类型 ``" + x_note;                xmldoc.Save("bijiaojiqi.rdlc");            }






[解决办法]
以后这种提示,你想都不用想,肯定是某个对象为空,那就挨个检查吧
SelectSingleNode,这个你先要判断是否找到了要找的节点,因为可能找不到啊,所以就有可能为空啊,而你现在是直接就认为不为空,直接访问下面的内容InnerText ,那报错就不为怪了
[解决办法]
XML命名空间的缘故,试试下面的办法:

xmldoc.Load(xmlpath);
XmlNamespaceManager xnm = new XmlNamespaceManager(xmldoc.NameTable);
xnm.AddNamespace("sqlrpt", "http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition");
xmldoc.SelectSingleNode("sqlrpt:Report/sqlrpt:Body/......").InnerText = "....";

热点排行