0

私はLINQが初めてで、LINQを介してGridViewを埋めています。私のコードを見てください:

 SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["mas"]);
    DataSet ds = new DataSet();
    string Query = string.Empty;

 private void Bind_LINQ_To_DataSet()
    {
        Query = "select * from dbo.Movie";
        SqlDataAdapter da = new SqlDataAdapter(Query, connection);
        da.Fill(ds, "dbo.Movie");
        var tbl = from p in ds.Tables["dbo.Movie"].AsEnumerable()
                  where p.Field<int>("ID") == Convert.ToInt32(TextBox1.Text)
                  select p;
            GridView1.Visible = true;
            GridView1.DataSource = tbl;
            GridView1.DataBind();
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        Bind_LINQ_To_DataSet();
    }

GridView が空になります。どんな提案でも本当に感謝しています。

4

3 に答える 3

3

列を指定するには、selectでnewを使用する必要があります。

これを試して:

var datasource = from r in ds.Tables["dbo.Movie"].AsEnumerable()
        where r.Field<int>("ID") == Convert.ToInt32(TextBox1.Text)
        select 
        new { FirstName = r.Field<String>("firstname"), LastName = r.Field<string>("lastname") };

またはこれを使用します:

GridView1.DataSource =  tbl.CopyToDataTable();
于 2013-09-20T07:19:28.993 に答える