【问题标题】:DropDownList value into Linq query where clause将 DropDownList 值放入 Linq 查询 where 子句
【发布时间】:2012-10-16 16:27:24
【问题描述】:

我面临以下问题。我想要一个旁边有一个 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”的内容{ 这里我会从下拉列表中选择值。 }

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

【问题讨论】:

  • 你的问题是什么?你从来不说。
  • 我想让我的“dropdownlist.selectedvalue”在我说的区域:{ 这里我会从下拉列表中选择值。 }

标签: asp.net sql database linq


【解决方案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) .

【讨论】:

    【解决方案2】:

    只需更改您的 sql 查询:

    if(supportgrp.SelectedItem.Text == "All")

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

    其他

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

    【讨论】:

      猜你喜欢
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多