我想为我的用户提供一个数据表,他/她可以在其中编辑数据。我使用此方法从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();
}