【问题标题】:Asp.net Cascading delete into Gridview_Rowdeleting eventGridview Rowupdating 事件中的 Asp.net 级联删除
【发布时间】:2016-05-11 12:14:47
【问题描述】:

我有一个从数据库中删除记录的问题。我想使用 Id 删除,但它已经存在其他表作为外键。这就是为什么我需要使用扩展名删除。
我需要从 Conferences、Conferences_Rewivers、Topics 三个表中删除记录。
我的代码是这样的,但它会引发错误,因为它不会从所有表中删除记录。我该如何解决?

  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();
    }

绑定网格视图

 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();
        }
    }

【问题讨论】:

标签: c# sql asp.net cascading-deletes


【解决方案1】:

首先你删除外键表(Conferences_Rewivers,Topics),然后你可以删除主表(主键表,即会议)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多