0
我有一个问题,从数据库中删除记录。我想删除使用Id,但它已经存在其他表作为外键。这就是为什么我需要用扩展名删除。
我需要删除会议,Conferences_Rewivers,主题3个表中的记录。
我这样的代码,但它会抛出错误,因为它不会从所有表中删除记录。我该如何解决它?Asp.net级联删除到Gridview_Rowdeleting事件
protected void GridView1_RowDeleting1(object sender, GridViewDeleteEventArgs e)
{
SqlConnection cn = new SqlConnection("Data Source = ---\\SQLEXPRESS; Initial Catalog = --; Integrated Security = True");
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "delete FROM Conferences where Id = @Id";
cmd.Connection = cn;
cmd.Parameters.AddWithValue("@Id", GridView1.DataKeys[e.RowIndex].Value);
cn.Open();
cmd.ExecuteNonQuery();
cmd.CommandText = "delete from Conferences_Rewivers where fk_Conferences = @Id";
cmd.ExecuteNonQuery();
cmd.CommandText = "delete from Topics where fk_Conferences = @Id";
cmd.ExecuteNonQuery();
cn.Close();
BindGridView();
}
BindGridView
if(Session["user"] != null)
{
user = Session["user"] as User;
}
SqlCommand cmd = new SqlCommand("select Conferences.Id, Conferences.conferenceName, Conferences.conferenceDate , Conferences.conferencePlace, Conferences.submissionDueDate , Conferences.category, Conferences.status, Conferences.conferenceDescription from Conferences inner join Users on Conferences.fk_Users = Users.Id where Users.Id = @UserId", conn);
SqlParameter prm = cmd.Parameters.AddWithValue("@UserId", user.Id);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable dt = new DataTable();
conn.Open();
da.Fill(dt);
conn.Close();
if(dt.Rows.Count > 0)
{
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
是任何帮助,解决办法: http://stackoverflow.com/a/7895411/728795? – Andrei