2011-09-09 23 views
-5

xmlファイルを読み込むメソッドを作成しましたが、2回は動作しません。ファイルの先頭にポインタを置く必要がありますが、見つからなかった。XMLを読む方法

using Microsoft.AnalysisServices.AdomdClient; 
using System.Diagnostics; 



namespace WindowsFormsApplication1 
{ 

    class Class { 
    private System.Xml.XmlReader XML_File; 
    public void DebugXML() 
     { 
      this.XML_File.Read(); 
      while (!this.XML_File.EOF) 
      { 
       Debug.WriteLine(this.XML_File.ReadOuterXml()); 
      } 
     } 


public Class() 
     { 
      AdomdConnection conn = new AdomdConnection("Data Source=MyComputer;InitialCatalog=Database"); 
      conn.Open(); 
      AdomdCommand cmd = new AdomdCommand("Select Hierarchize([Projects].[Project Branch].Levels(1).Members) DIMENSION PROPERTIES PARENT_UNIQUE_NAME, HIERARCHY_UNIQUE_NAME, CUSTOM_ROLLUP, UNARY_OPERATOR, KEY0 ON 0, Hierarchize({{{[Period Calculations].[Period].&[0]}, {[Period Calculations].[Period].&[1]}, {[Period Calculations].[Period].&[2]}, {[Period Calculations].[Period].&[3]}, {[Period Calculations].[Period].&[4]}, {[Period Calculations].[Period].&[5]}}}) DIMENSION PROPERTIES PARENT_UNIQUE_NAME, HIERARCHY_UNIQUE_NAME, CUSTOM_ROLLUP, UNARY_OPERATOR, KEY0 ON 1 FROM [ProjectControl] WHERE ([Measures].[WIP]) CELL PROPERTIES BACK_COLOR, CELL_ORDINAL, FORE_COLOR, FONT_NAME, FONT_SIZE, FONT_FLAGS, FORMAT_STRING, VALUE, FORMATTED_VALUE, UPDATEABLE", conn); 
      CellSet Cellules = cmd.ExecuteCellSet(); 
      this.XML_File = cmd.ExecuteXmlReader(); 
      DebugXML(); 
      DebugXML(); 
      conn.Close(); 
     } 
} 
+3

あなたはXML_Fileのタイプを教えてくれていません。なぜなら、毎回それを別々に読むのではなく、クラス内で開いたままにしなければならない理由です。 –

+0

'XmlReader'は転送専用のリーダーです。複数回読む必要がある場合は、他の構文を使用する必要があります。 –

+0

System.Xml.XmlReader XML_File; – TTT

答えて

0

あなたは、二回あなたが例外ファイルがanotheプロセスによって開かれていることを知らせるよもう一度、あなたのコードを実行している場合。

これは、あなたがそれを閉じなかったことを意味します。だからそれを閉じてください!

+0

確かに、私はそれを試しましたが、その背後には重いクエリがありますので、毎回実行しないようにしたいと思います。 – TTT

+0

??どういう意味ですか ?何をしたいですか ?あなたの質問とこの "重いクエリ"のリンクは何ですか? –

+0

私は質問を精緻化し、より具体的には、Webサービスを使用してキューブ(Analysis Services)からデータを取得したいと思います私のMainApplicationにアクセスできるどこかのXMLまたはCelldataを保存します。 – TTT

0

また、次の例を持つMicrosoft Support Article - How to read XML file by using Visual C#を参照してください。

using System; 
using System.Xml; 

namespace ReadXMLfromFile 
{ 
    /// <summary> 
    /// Summary description for Class1. 
    /// </summary> 
    class Class1 
    { 
     static void Main(string[] args) 
     { 
      XmlTextReader reader = new XmlTextReader ("books.xml"); 
      while (reader.Read()) 
      { 
       switch (reader.NodeType) 
       { 
        case XmlNodeType.Element: // The node is an element. 
         Console.Write("<" + reader.Name); 
         Console.WriteLine(">"); 
         break; 
        case XmlNodeType.Text: //Display the text in each element. 
         Console.WriteLine (reader.Value); 
         break; 
        case XmlNodeType.EndElement: //Display the end of the element. 
         Console.Write("</" + reader.Name); 
         Console.WriteLine(">"); 
         break; 
       } 
      } 
      Console.ReadLine(); 
     } 
    } 
} 
関連する問題