我有一个函数,
private void BindGridView(tbGuestBook[] data)
        {
            GridView1.DataSource = data;
            GridView1.DataBind();
        }
怎么把Linq查询 "singleResult" 返回的值赋给BindGridView函数的参数
var singleResult = from c in ctx.sp_singleresultset() select c;
以下这两个方法都不行,怎么会转换不了呢?
            tbGuestBook[] arr = singleResult.ToArray<tbGuestBook>();
            List<tbGuestBook> tt = singleResult.ToList<tbGuestBook>();

解决方案 »

  1.   

    用LinqDataSource.具体看这儿吧http://www.codeproject.com/KB/aspnet/LinqDataSource2.aspx
    或者GridView1.DataSource = from c in ctx.tbGuestBook select c
    GridView1.DataBind();
      

  2.   

    DataSource必须得是继承了IEnumerable接口的,所以你传入的只要是IEnumerable<Object>就可以了。
      

  3.   

    List <tbGuestBook> tt = singleResult.ToList();
    这样就可以了....
      

  4.   

    List<T> t= (from r in ctx.tbGuestBook select c
    ).ToList(); 
      

  5.   

    除了IEnumerable接口,也可以是IListSource接口。实现了这两个接口之一的对象,都可以作为DataSource用
      

  6.   

    呵呵,可以这样,
     IEnumerable<tbGuestBook> customers = singleResult.ToList();
    然后把函数改成这样
    private void BindGridView(IEnumerable data) 
            { 
                GridView1.DataSource = data; 
                GridView1.DataBind(); 
            } 
      

  7.   

    IList <tbGuestBook> tt = singleResult.ToList <tbGuestBook>(); 
      

  8.   

    tbGuestBook[] arr = singleResult.ToArray <tbGuestBook>(); 
    怎么不行?和你函数参数是同类型的,报什么错