2009-04-23 7 views
0

私はVAL1は亜音速 - 簡単な問い合わせ

VAL2が

私のクエリは非常に単純なint型int型のテーブルが2列

を持っています。

私は、レコードのコレクションを取得したいが、条件を(VAL1 = val2の)持って、

に相当

(表VAL1 = val2のSELECT * FROM)

私は

のIDataReader RDR =新しいクエリを試してみてください( "テーブル")。WHERE( "Val1 = Val2")。ExecuteReader(); tableColl.LoadAndCloseReader(rdr); rdr.Close();

..WHERE (" 'Val1=Val2' ") 
    ..WHERE (Table.Columns.Val1,IsEqualTo,Table.Columns.Val2) //This not reguler I know 
    ..WHERE ("Val"+'='+"Val2") 
    ..... 

任意のヘルプは、よりapricatedなります。

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

答えて

1

残念ながら、あなたは私の知る限り、インラインクエリとしてこれを実行する必要があります

TableCollection tableCollection = new InlineQuery() 
    .ExecuteAsCollection<TableCollection>(
    "SELECT * FROM " + Table.Schema.TableName " WHERE " + Table.Columns.Val1 + " = " + Table.Columns.Val2); 
+0

お返事ありがとうございました。 情報が不明です。私はVersiyon 2.0.3を使用しています。 DB.Select()は2.0.3のバージョンではサポートされていません。 –

+0

問題はありませんが、とにかく最初に提案した方法ではうまくいかないことに気付きました。 InlineQueryは2.0.3に存在していて、 –

+0

あなたの答えに感謝します。 残念ながらInlineQuery()は2.0.3ではサポートされていません。 2.1バージョンをアップグレードする必要があります。 –

0

は最近、同じような状況にあったと、この思い付いた:

TableCollection tablecollection = new TableCollection; 
Comparison comp = Comparison.Equals; 
tablecollection.Where(Table.Columns.Val1, comp, Table.Columns.Val2); 
tablecollection.Load(); 

私はこれを見つけました私はインラインクエリが好きではないので、より良いです。あなたのアプリでアドホックなクエリを許可したい場合は より多くの柔軟性を与えます。

+0

私はssを使用して2.0.5 – jake

+0

こんにちは あなたの答えに感謝します。 しかし、2.0.3で試してみましたが、これは私が期待していたものではありません。 これは、3. paramのようなパラメータを想定しています。 (表1)[表1]。[ID]、[テーブル1]。[ID]、[テーブル1]。[IDS]、[ [表1] [表1]。[表1]。[表1]。[表1]。[表2] FROM [表1] WHERE [表1] [Val1] = @ Val20 ORDER BY [ID] ASC; あなたは2.0.3で疲れましたか? –

0
private void CreateDynamicControls() 
{ 


    panGvHolder.Controls.Clear(); 

    Query qry = Northwind.Product.CreateQuery(); 
    qry.Columns.AddRange(Northwind.Product.Schema.Columns); 
    qry.WHERE("UnitPrice > 15").AND("UnitsInStock < 20 "); 
    //WHERE("UnitPrice > 15").AND("UnitsInStock < 30 "); 



    using (IDataReader rdr = qry.ExecuteReader()) 
    { 
     Response.Write("<table>"); 
     while (rdr.Read()) 
     { 
      Response.Write("<tr>"); 
      for (int i = 0; i < rdr.FieldCount; i++) 
      { 
       Response.Write("<td>"); 
       Response.Write(rdr[i].ToString() + " "); 
       Response.Write("<td>"); 
      } //eof for 
      Response.Write("</br>"); 
      Response.Write("</tr>"); 
     } 
     Response.Write("<table>"); 
    } 
} //eof method