1

我面临以下问题。我想要一个旁边有一个 DropDowList 的搜索字段,用户可以在其中选择他想要搜索的项目。我必须用这个 LINQ 代码来完成它,而不仅仅是一个 SQL 查询。

这是我的代码:

var Metadata = from m in db.Metadatas
    join mm in db.Multimedias
    on m.multimediaID equals mm.multimediaID
    where (m.   { Here would i have the selected value from the dropdownlist. } .ToString().Contains(textboxvalue) ||
           mm.  { Here would i have the selected value from the dropdownlist. } .ToString().Contains(textboxvalue))
           && mm.filetype.ToString().Contains(radiobuttonvalue)

我想在区域中输入类似:“Dropdownlist.selectedvalue”的内容{这里我会从下拉列表中选择值。}

我希望你们能理解我的想法和问题。

4

2 回答 2

1

我不确定您为什么要在 linq 语句中加入。如果您的 Linq 已经知道对象之间的关系,则没有必要这样做,因为数据库中有一个外键关系设置。

你可以做的是:

var Metedata = db.Metadatas;

switch(Dropdownlist.selectedvalue)
{
  case "one":
    Metadata = Metadata.Where(m => m.{selected value field}.Contains(textboxvalue));
    break;

  case "two":
    Metadata = Metadata.Where(m => m.{selected value field}.Contains(textboxvalue));
    break;

  //More use cases
}

我不确定完成后您将从列表中选择什么,但如果它涉及相关对象(例如多媒体),那么您可能需要查看 DataLoadOptions (LinqToSQL) 或 .Include() (EntityFrameworks)。

于 2012-10-26T14:28:37.920 回答
0

只需更改您的 sql 查询:

if(supportgrp.SelectedItem.Text == "全部")

sql ="SELECT * FROM QlyData where Date >='" + txtstartdate.Text + "' and Date<='" + txtenddate.Text + "'";

别的

sql ="SELECT * FROM QlyData where Date >='" + txtstartdate.Text + "' and Date<='" + txtenddate.Text + "' and suppgrp = '" + supportgrp.Text + "'";

于 2012-10-26T11:55:32.750 回答