C#使用Function填充GridView

时间:2012-08-30 12:42:39

标签: c# linq-to-sql

我有一个gridview,我想填充从linq到sql文件的数据。

我尝试创建一个函数,用一个字符串填充gridview,该字符串是表名。

InformitoDataContext db = new InformitoDataContext();

    public void FillGridView(string Table, Control GridView) 
    {
        var ds = from q
              in db.Table //Error in db.Table: 'InformitoDataContext' does not contain a definition for 'Table'
                select q;
        (GridView as GridView).DataSource = ds;
        (GridView as GridView).DataBind();
    }

它应该像这样工作:

 public void Page_Load(object sender, EventArgs e)
{
    Data.FillGridView("news", GridView1);
}

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

在InformitoDataContext的构造函数中传递连接字符串

string str= /*connection string*/
InformitoDataContext db = new InformitoDataContext(str);

试一试。

答案 1 :(得分:1)

您可以尝试使用反射:

public void FillGridView(string Table, Control GridView) 
{
    var property = typeof(InformitoDataContext).GetProperty(Table);
    IQueryable query = (IQueryable)(property.GetGetMethod().Invoke(db, new object[0]));
    (GridView as GridView).DataSource = query;
    (GridView as GridView).DataBind();
}

但这不是我推荐的......你将对象链接到字符串虽然linq到SQL正好相反......

嗯......我没有测试代码,它可能无法编译......这只是为了得到这个想法

答案 2 :(得分:0)

首先,你应该在变量的开头删除大写:

public void FillGridView(string table, GridView gridView) 
    {
        var ds = from q in table;
        select q;
        gridView.DataSource = ds;
        gridView.DataBind();
    }