2017-09-13 16 views
0

現在、C#/ Xamarinでアンドロイドアプリを作成しています。アプリケーションは、ローカルのSQLiteデータベースを使用します。そこに私はアプリに書かれているクエリを実行したい。Xamarinテーブルマッピングやクラスを知らずにSQLiteクエリを実行する

class TestClass 
{ 
    [PrimaryKey, AutoIncrement, Column("id")] 
    public int Id { get; set; } 
    [NotNull, Column("messagetext")] 
    public string MessageText { get; set; } 
    [Column("messagetype")] 
    public int MessageType { get; set; } 

    public TestClass(string mText, int mType) 
    { 
     MessageText = mText; 
     MessageType = mType; 
    } 
} 

データベースは複数のテーブルを持っています テーブルは、このようなクラスを介して作成されます。

機能

DBConnection.Execute( "これはクエリである")

だけでクエリを実行します。 私は結果を取得する必要があるので、私は

DBConnection.Query

を使用する必要がありますが、プログラミングながら、私が参加し、クエリが選択するものテーブル分からない... クエリ機能TableMappingまたはClassが必要です。

テーブルマッピングなどを知らなくてもクエリを実行して結果を得る方法はありますか?

ありがとうございました。

答えて

0

オーバーロードされたQueryメソッドの汎用パラメータは、クエリから返す値の型を示します。

たとえば、TestClassテーブルのすべての行からIdフィールドのみを選択したいとします。 Idはintなので、メソッド呼び出しは次のようになります。

List<int> testIds = DBConnection.Query<int>("SELECT Id FROM TestClass"); 
+0

これは私が必要とするものではありません。 SQLステートメントは、ユーザーが実行時に作成します。だから私はそれが整数、文字列かどうか、彼が2つの結合されたテーブルから*を選択するかどうかは分かりません。 – Cyalit

+0

よろしくお願いいたします。クエリがユーザによって書き込まれた場合、このライブラリが提供するものよりも低いレベルのデータベース接続へのアクセスが必要なように聞こえます。 [この似たような質問に対する受け入れられた答えを調べる](https://stackoverflow.com/questions/39106298/is-it-possible-to-return-dynamic-objects-or-dataset-from-a-sqlite-query) –

関連する問題