2017-09-06 54 views
2

我有一个下面的代码来填充我的Asp.net gridview的数据。我在其他asp.net页面中使用了与下面相同的代码来将数据加载到gridview。所有其他页面都可以正常显示,并成功显示带有数据的gridview。但是在一个页面中,要显示客户购买的产品列表,它会显示错误。 这是我的代码。数据绑定直接存储查询(DbSet,DbQuery,DbSqlQuery,DbRawSqlQuery)时出错不支持

using (DataContext.DBEntities ctx = new DataContext.DBEntities()) 
{ 
List<DataContext.vwClientAndProduct> product = new List<DataContext.vwClientAndProduct>(); 
product = ctx.SP_ClientAndProduct_Select().ToList<DataContext.vwClientAndProduct>(); 
gvList.DataSource = product.ToList(); 
gvList.DataBind(); 
} 

我追溯了错误页面的代码,它成功地传递了gvList.DataBind()方法。但是当我继续F5时,错误消息显示在我的product.aspx页面中。错误以'数据直接绑定到商店查询(DbSet,DbQuery,DbSqlQuery,DbRawSqlQuery)不支持....'

以下各项都不起作用。

var product = (from row in ctx.SP_ClientAndProduct_Select() 
           select row).ToList(); 

//var product = from row in ctx.SP_ClientAndProduct_Select() 
           select row; 
//var product = ctx.SP_ClientAndProduct_Select().ToList();     

gvList.DataSource = product.ToList(); 
gvList.DataBind(); 

其他页面与以下内容配合良好。

using (DataContext.DBEntities ctx = new DataContext.DBEntities()) 
      { 
var product = ctx.SP_Product_Select().ToList() 
       gvList.DataSource = product.ToList(); 
       gvList.DataBind(); 
      } 

我不知道为什么这不起作用,虽然代码是相同的。

请帮忙。 谢谢

+0

为什么在第一个使用'DataContext.vwClientAndProduct'类型,但第二个不是?我认为'DataContext'是罪魁祸首,因为它与EF的上下文相关,并且该上下文在绑定到GridView的'DataSource'属性时不能用作List的类型参数。 –

+0

但是为什么它在其他页面中工作对我来说很奇怪。 –

回答

1

它的工作!

我创建了一个新的aspx页面,并将错误页面中的所有代码复制到新页面。

当新页面加载时,gridview显示数据。

很奇怪!

谢谢。