【问题标题】:ASP.Net and Entity Framework Filter Search to GridviewASP.Net 和实体框架过滤器搜索到 Gridview
【发布时间】:2014-03-31 16:28:52
【问题描述】:

我正在开发使用实体框架并从数据库获取数据的 ASP.NET 应用程序。我有以下代码来过滤网格视图上的渲染数据。我试过这段代码肯定是错的!

 protected void btnSearch_Click(object sender, EventArgs e)
        {
            GISEntities gis = new GISEntities();
            GIS_CONTRACTOR_TEST tbl = gis.GIS_CONTRACTOR_TEST.ToList().Where(x => x.CONTRACTORNAME == txtSearch.Text).First();
            GridView1.DataSource = tbl.CONTRACTORNAME;
            GridView1.DataBind();
        }

如您所见,我在GridView1.DataSource = tbl.CONTRACTORNAME; 上遇到了问题,除了字段构造函数之外,我找不到tbl 的任何其他属性。能否请您告诉我如何将数据库过滤到网格视图中,而不是单独显示它们!

谢谢

【问题讨论】:

  • 到底是什么问题?您是否收到错误或收到的结果与预期不同?
  • 这个代码在逻辑上是错误的!我想在 gridview 中得到结果,但我只能从 tbl 访问 columns 属性!

标签: c# asp.net entity-framework gridview entity-framework-4


【解决方案1】:

如果我假设GISEntities 是您的数据库上下文,那么试试这个。

var result = (from a in gis.GIS_CONTRACTOR_TEST where a.CONTRACTORNAME == txtSearch.Text select a).ToList();

GridView1.DataSource = result;
GridView1.DataBind();

如果您没有在 result 变量中找到正确的属性,我会查看您的 GIS_CONTRACTOR_TEST 模型和数据库上下文,确保其定义正确。

【讨论】:

  • 谢谢 Reza,但我收到“数据源是无效类型。它必须是 IListSource、IEnumerable 或 IDataSource。”运行代码时出错!
  • 感谢 Reza,它现在正在工作。只是一个简单的问题?您是否使用 Linq 查询数据?那么使用“from a in gis.CONTRACTOR.TEST where .... select a”和 G Ravinder 使用的 Where() 方法有什么不同?
  • 我正在使用 linq 查询,最终结果应该与您所做的不同。这是我个人更喜欢调用 Where() 而不是什么。
【解决方案2】:

试试这个

GISEntities gis = new GISEntities();
GridView1.DataSource = gis.GIS_CONTRACTOR_TEST.Where(m => m.CONTRACTORNAME == txtSearch.Text).ToList();
GridView1.DataBind();

【讨论】:

  • 谢谢 G RAvinder,能否请您告诉我如何检查是否有任何东西要退货?我的意思是如果数据库中没有任何匹配项,则向用户发送消息?
  • 只用 No results found. 会显示“No results found”。当数据库中没有匹配的结果时。
猜你喜欢
  • 2015-07-25
  • 2015-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-08
  • 1970-01-01
相关资源
最近更新 更多