2011-03-24 31 views
1

我有一个需要在RowUpdating事件上更新的GridView。我如何使用LINQ更新数据?使用LINQ更新GridView数据

我填充使用LINQ也和这里GV是该代码:

protected void Page_Load(object sender, EventArgs e) 
    { 
     string getEntity = Request.QueryString["EntityID"]; 
     int getIntEntity = Int16.Parse(getEntity); 
     using (OISLinq2SqlVs1DataContext dt = new OISLinq2SqlVs1DataContext()) 
     { 
      var tr = from r in dt.Users 
         join s in dt.Entities on r.Entity_ID equals s.ID 
         where s.ID == getIntEntity 
         select new 
         { 
          s.Name, 
          r.FirstName, 
          r.LastName, 
          s.Email, 
          //r.Email, 
          r.UserID, 
          r.Pwd, 
          s.Company, 
          s.Description, 
          s.Phone, 
          s.Fax, 
          s.WebSite 

         }; 

      gvShowRegistration.DataSource = tr; 
      gvShowRegistration.DataBind(); 
     } 

    } 
+0

家伙: 我有2个表,我需要从他们两人拉了一些列。现在我遇到的问题是使用LDS,它让我只能从一个表中选择。而我的GV只绑定到一张桌子上。 现在,这里是我的下一个问题: 我如何可以绑定我的LDS多个表并显示给GridView的? – 2011-03-24 21:37:19

+0

你将无法使用LDS作为这个scenerio。你必须在代码中进行数据绑定。请参阅下面的编辑。 – 2011-03-24 21:44:08

+0

谢谢,我明白了。我知道这是问题所在。 – 2011-03-24 21:58:39

回答

2

什么你试图做将与LinqDataSource

这里得到最好的实现是一个很好的教程就可以了从斯科特谷

http://weblogs.asp.net/scottgu/archive/2007/07/16/linq-to-sql-part-5-binding-ui-using-the-asp-linqdatasource-control.aspx

编辑

如果您绝对不能使用Linq DS,那么在您的RowUpdating事件中,您将必须创建一个新的数据上下文,根据您正在更新的行中的DataKey重新读取该对象,根据事件参数分配新值,然后保存更改。

这将是一种痛苦。三重检查你在经历所有这些之前不能使用LDS。

+0

我之所以不使用LinqDataSource,是因为在页面中进行了自定义编辑。我必须手动写入我的UPDATE语句。 – 2011-03-24 21:07:25

+0

我正在使用来自上一页的QueryString填充我的GV。那我该如何绑定我目前的GV呢? – 2011-03-24 21:14:33

+0

哦 - 我很确定有QueryStringParameters你可以给LDS – 2011-03-24 21:16:14