0

我有一张桌子有 2 列

Val1 整数

Val2 整数

我的查询很简单。

我想收集有条件的记录 (val1=Val2) ,

相当于(从 Val1=Val2 的表中选择 *)

我试试

IDataReader rdr = new Query("Table").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
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 回答
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 回答