gridview绑定一个linq to sql类删除可以用如下代码
   protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            string st = GridView1.DataKeys[e.RowIndex].Value.ToString();
            var title = from s in dc.title1 where s.title_id.Equals(st) select s;
            try
            {
                foreach (var t in title)
                {
                    dc.title1.DeleteOnSubmit(t);                    dc.SubmitChanges();
                }
               
            }
新增也有
dc.title1.InsertOnSubmit(t);
请问修改有什么方法?

解决方案 »

  1.   

    //更新
      protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
      {
        sqlcon = new SqlConnection(strCon);
        string sqlstr = "update 表 set 字段1='"
            + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',字段2='"
            + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "',字段3='"
            + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "' where id='"
            + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
        sqlcom=new SqlCommand(sqlstr,sqlcon);
        sqlcon.Open();
        sqlcom.ExecuteNonQuery();
        sqlcon.Close();
        GridView1.EditIndex = -1;
        bind();
      }
      

  2.   

    兄弟  我的意思是 用datacontext.. 我奇怪datacontext既然 有dc.Table.DeleteOnSubmit()和dc.table.InsertOnSubmit()这2个方法;怎么就没有dc.table.UpdateOnSubmit()这个方法
      

  3.   

    呵呵,不需要的啊,修改过后直接dataContext.SubmitChanges()就会自动把修改之后的数据保存
      

  4.   

    再说了,GridView绑定到LinqDataSource都不需要你手动去增加删除修改,自动会进行的
      

  5.   

    楼上的兄弟 我写删除事件是这样写的     DataClasses1DataContext dc = new DataClasses1DataContext();
         protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
            {            string st = GridView1.DataKeys[e.RowIndex].Value.ToString();
                var title = from s in dc.title1 where s.title_id.Equals(st) select s;
                try
                {
                    foreach (var t in title)
                    {
                        dc.title1.DeleteOnSubmit(t);
                        dc.SubmitChanges();
                    }
                    DataBind();
                }
                catch (Exception ex)
                {
                    string errstr = Server.HtmlEncode(ex.Message);
                    Response.Write(errstr);
                }
                finally
                {            }        }
            public override void DataBind()
            {
                GridView1.DataSource = (from s in dc.title1 select s).ToArray();
                GridView1.DataBind();
            }
    请问我的Row_Updating事件该如何写?
     
            protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
            {
                //这里该如何写代码?
                dc.SubmitChanges();
                GridView1.EditIndex = -1;
                DataBind();
            }
      

  6.   

    我写的一个例子
    希望能对你有帮助
       protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)//更新
        {
            var zhi = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
            Tb_love ff=love.Tb_love.Single(b=>b.ID==(zhi));
            ff.name = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].FindControl("tex_name"))).Text.ToString().Trim();
            ff.age = Convert.ToInt32(((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].FindControl("tex_age"))).Text.ToString().Trim());
            ff.love = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].FindControl("tex_love"))).Text.ToString().Trim();
            love.SubmitChanges();
            GridView1.EditIndex = -1;
            bind();
        }
      

  7.   

    楼上兄弟 谢谢了 这个方法可行  有没有更简便一点的方法? 
    我的思路是这样的 像DeleteOnSubmit()这个方法 是将选中的这行的实体设置位pending delete(预删除)状态,InsertOnSubmit()是将要添加的实体 设置为pending insert(预添加)状态 我们调用了该方法后,只要再调用.SubmitChanges()方法提交对数据库的更改就行了
      就是说,像添加,删除等这些方法MS都帮我们封装好了,只要我们调用个方法就行. UPDATE有没有帮我们封装好 也只要我们调用就行的?
      

  8.   

    好像UPDATE不能调用的
    我看了一些资料都是用上面那种办法的