0

我有一个网格视图,我想用我的 linq 到 sql 文件中的数据填充。

我试图创建一个函数来用一个字符串填充一个网格视图,该字符串是它的表名。

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);
}

我该如何解决这个问题?

4

3 回答 3

1

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

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

尝试一下。

于 2012-08-30T12:53:01.963 回答
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 to SQL 的做法恰恰相反……

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

于 2012-08-30T12:53:55.207 回答
0

首先,您应该删除变量开头的大写字母:

public void FillGridView(string table, GridView gridView) 
    {
        var ds = from q in table;
        select q;
        gridView.DataSource = ds;
        gridView.DataBind();
    }
于 2012-08-30T12:52:05.583 回答