2

ac# .net アプリケーションでクラウドの parse.com データベースからデータを読み込もうとしていますが、求めている値を取得するのに行き詰まっています。そのままのコードは、アプリの起動時に呼び出されます (今のところ):

  Console.WriteLine("called app launch");

  var query = ParseObject.GetQuery("Maintenances")
        .WhereEqualTo("Sent", "true");
  IEnumerable<ParseObject> results = await query.FindAsync();



  foreach (var record in results)
  {
      Console.WriteLine("in for each");
      var docket = record.Get<String>("Docket");
      Console.WriteLine(docket);
  }

だから私はフィールド「送信済み」が「真」である「メンテナンス」と呼ばれるクラスを照会しています。次に、「results」という名前の IEnumerable の各「レコード」について、今のところデバッグ目的でコンソールに書き出そうとしています。ただし、次のようなエラーで var "docket" に正しいデータが取得されません。

「タイプ 'System.Collections.Generic.List`1[System.Object]' のオブジェクトをタイプ 'System.String' にキャストできません。」

吐き出される。しかし、ブレーク モード (Visual Studio 2012 Express) で「レコード」にカーソルを合わせると、レコードが Parse.ParseObject であることがわかります。結果ビューをクリックすると (「結果ビューを展開すると IEnumerable が列挙されます」と表示されます)。 ") クラス内のすべてのキーと、それに対応する正しい値を確認できます!

コードで「IEnumerable を列挙」してから正しい値を掘り出す必要があると考えていますが、これを行う方法がわかりません。Parse.com SDK をクエリで使用し、その結果を使用して、優れた C# チュートリアルを教えてくれたり、教えてくれたりできますか?

4

1 に答える 1

3

メソッドでコードを変換してみてください

public async void getdata(String Z,bool b)
            {
                var query = ParseObject.GetQuery("Maintenances")
           .WhereEqualTo("z", "b");
                IEnumerable<ParseObject> results = await query.FindAsync();



                foreach (var record in results)
                {
                    Console.WriteLine("in for each");
                    var docket = record.Get<String>("Docket");
                    Console.WriteLine(docket);
                }
            }
于 2013-06-11T17:04:35.767 に答える