0

2列のテーブルがあります

Val1 整数

Val2 整数

私のクエリは非常に簡単です。

条件付き (val1=Val2) のレコードのコレクションを取得したいのですが、

相当 (Val1=Val2 のテーブルから * を選択)

私は試します

IDataReader rdr = new Query("テーブル").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") 
  .....

より適切にするのに役立ちます。

ありがとう。

4

3 に答える 3

1

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

TableCollection tableCollection = new InlineQuery()  
  .ExecuteAsCollection<TableCollection>(
    "SELECT * FROM " + Table.Schema.TableName " WHERE " + Table.Columns.Val1 + " = " + Table.Columns.Val2);  
于 2009-04-23T11:07:25.797 に答える
0

最近同じ状況にあり、これを思いつきました:

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

私はインラインクエリが好きではないので、これがより良いと思いました。また、アプリでアドホック クエリを許可する場合は、柔軟性が向上します。

于 2009-04-24T10:19:53.723 に答える
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
于 2009-05-27T18:17:19.807 に答える