如何使用GridView在WebForm中更新数据



我想为我的用户提供一个数据表,他/她可以在其中编辑数据。我使用此方法从SQL Server获取数据

        public static List<TestAsfa> GetRecordsMan() {
        using (var d = new TestEntities())
        {
            return d.TestAsfa.ToList();
        }

当我想编写删除函数

时,我被卡住了
 protected void RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        try
        {
            dt.Rows[GridView1.Rows[e.RowIndex].RowIndex].Delete();
            int id =Convert.ToInt32(GridView1.Rows[e.RowIndex].ID);
            FillGridView();
        }
        catch
        {
            Response.Write("<script> alert('Record not deleted...') </script>");
        }
    }

这是删除函数。我写了下面的方法

public static void deleteRecord(int id)
    {
        using (var d = new TestEntities())
        {
            TestAsfa tb = d.TestAsfa.SingleOrDefault(t => t.ID == id);
            d.TestAsfa.Remove(tb);
            d.SaveChanges();
        }
    }

,但我不知道它不会从发件人那里获得正确的行ID我不明白我的错误

不要忘记防止错误,您需要确保您要检查的ID是实际项目的。例如:

    public static void deleteRecord(TestAsfa TA,int id)
    { 
         using(var d = new TestEntities())
         {
            TA= d.TestAsfa.Where(item => item.ItemId == id).FirstOrDefault(); 
            if (itemTA!= null) {
               d.TestAsfa.Remove(TA);
            }
         }             
    }

用于删除选定的行使用此代码

 using(var d = new TestEntities())
 {
     d.TestAsfa.Remove(d.TestAsfa.Find(id));
     d.SaveChanges();
 }

或使用此

 using(var d = new TestEntities())
  {
     TestAsfa tb = d.TestAsfa.SingleOrDefault(t => t.Id == id);
      d.TestAsfa.Remove(tb);
      d.SaveChanges();
   }

嗨,请尝试一下

受保护的void gridview1_rowdeleting(对象发送者,gridviewDeleteeventargs e)
{

        GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex];  
        Label lbldeleteid = (Label)row.FindControl("lblID");   
        conn.Open();  
        SqlCommand cmd = new SqlCommand("delete FROM tableName where   
        id='"+Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString())+"'", conn);     
        cmd.ExecuteNonQuery();       
        conn.Close();     
        gvbind();
    }

最新更新