FineUI 官方论坛

标题: 【结贴】关联数据表删除总报异常? [打印本页]

作者: alfly008    时间: 2014-4-13 22:30
标题: 【结贴】关联数据表删除总报异常?
本帖最后由 alfly008 于 2014-6-14 23:13 编辑

两表关联: AllocIn配送单表, AllocInDet配送明细表,其中明细表中保存着配送单表的主键AllocInID作为外键。
  删除配送单表时,理应一并删除这个配送单下所有的明细数据。

前台是一个删除的按钮,如下:
  1. <x:LinkButtonField ColumnID="deleteField" TextAlign="Center" Icon="Delete" ToolTip="删除" ConfirmText="确定删除此记录?"
  2. ConfirmTarget="Top" CommandName="Delete" Width="50px" />
复制代码

后台代码中,
  1.         protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
  2.         {
  3.             int id = Convert.ToInt32(Grid1.DataKeys[e.RowIndex][0]);

  4.             if (e.CommandName == "Delete")
  5.             {

  6.                 try
  7.                 {
  8.                     /* 这里删除时,一并删除明细表的内容 */
  9.                     DataSet ds1;
  10.                     //TSM.Model.CK_AllocInDet modelCK_AllocInDet = m_bllCK_AllocInDet.GetModel(id);

  11.                     //string searchText = modelCK_AllocInDet.CK_AllocInID.ToString();
  12.                     string strWhere = "CK_AllocInID = " + id;

  13.                     ds1 = m_bllCK_AllocInDet.GetList(strWhere);
  14.                     ds1.Tables[0].Clear();
  15.                     
  16.                     m_bllCK_AllocIn.Delete(id);

  17.                     BindGrid();
  18.                 }

  19.                 catch (Exception ex)
  20.                 {
  21.                     Alert.ShowInTop(ex.ToString());
  22.                     return;
  23.                 }
  24.      
  25.             }
复制代码

报错如下:
System.Data.SqlClient.SqlException: DELETE 语句与 REFERENCE 约束"FK__CK_AllocI__CK_Al__5B0E7E4A"冲突。该冲突发生于数据库"testDP",表"dbo.CK_AllocInDet", column 'CK_AllocInID'。


作者: alfly008    时间: 2014-4-14 22:10
尝试过以下办法:依然不行,求以教我,谢谢诸位了
  1.                     DataSet ds1;
  2.                     string strWhere = "CK_AllocInID = " + id;

  3.                     ds1 = m_bllCK_AllocInDet.GetList(strWhere);
  4.                     int cnt = ds1.Tables[0].Rows.Count;                 
  5.                     for (int i = 0; i < cnt; i++)
  6.                     {
  7.                         DataRow deleteRow = ds1.Tables[0].Rows[i];
  8.                         deleteRow.Delete();
  9.                     }

  10.                     SqlDataAdapter myDA = new SqlDataAdapter();
  11.                     try
  12.                     {
  13.                         myDA.Update(ds1.Tables[0]);
  14.                     }
  15.                     catch (Exception ex)
  16.                     {
  17.                         this.Response.Write(ex.Message);
  18.                     }
复制代码





欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4