在网格视图中显示数据

时间:2016-08-30 05:33:30

标签: asp.net linq gridview

我尝试通过linq在gridview中显示数据这是我尝试的

public void vehcile(string id)
        {
            Entities1 wr = new Entities1();
            List<spchile_Result> sv = wr.spchile(id).ToList();
            DataTable dt = new DataTable();
            dt.Columns.Add("Number",typeof(int));
            dt.Columns.Add("RegNo", typeof(string));


            foreach(var c in sv)
            {
                dt.Rows.Add(c.Number,c.RegNo)
            }
            GridView1.DataSource=;
            GridView1.DataBind();
            return dt;

        }

更新

好的,我现在要尽量减少不。代码行并直接绑定而不是添加列时,我这样做显示错误

 public DataTable vehcile(string id)
        {
            Entities1 wr = new Entities1();
            GridView1.DataSource=wr.spvechile(id);
            GridView1.DataBind();
            return ;
        }
 protected void Page_Load(object sender, EventArgs e)
        {
           if(!this.IsPostBack)
            {
                this.vehcile(id);
            }

        }

此节目错误

错误10可转换为&#39; System.Data.DataTable&#39;的类型的对象。需要
错误9名称&#39; id&#39;在当前上下文中不存在 现在我如何返回数据以及如何设置数据源?

任何解决方案?

4 个答案:

答案 0 :(得分:0)

在您的案例中设置DataSource dt的值。

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

您的方法的return type也是void,并且您将返回DataTable,这将导致错误。

如果您打算将DataTable更改return type更改为DataTable

public DataTable vehcile(string id)
{
 //your code
}

答案 1 :(得分:0)

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

为什么需要返回返回类型为无效的数据。

你可以像

一样返回
public List<spchile_Result> yourmethod(int id)
{
    ...
    return sv;
}

答案 2 :(得分:0)

将数据表设置为网格视图的数据源,方法的返回类型应为DataTable而不是void

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

答案 3 :(得分:0)

      public DataTable vehcile(string id)
    {
        Entities1 wr = new Entities1();
        List<spchile_Result> sv = wr.spchile(id).ToList();
        DataTable dt = new DataTable();
        dt.Columns.Add("Number",typeof(int));
        dt.Columns.Add("RegNo", typeof(string));


        foreach(var c in sv)
        {
            dt.Rows.Add(c.Number,c.RegNo)
        }
        GridView1.DataSource=dt;
        GridView1.DataBind();
        return dt;

    }