FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 1141|回复: 1
打印 上一主题 下一主题

【结贴】关联数据表删除总报异常?

[复制链接]
回帖奖励 12 金钱 回复本帖可获得 12 金钱奖励! 每人限 1 次
跳转到指定楼层
楼主
发表于 2014-4-13 22:30:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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'。

沙发
 楼主| 发表于 2014-4-14 22:10:58 | 只看该作者
尝试过以下办法:依然不行,求以教我,谢谢诸位了
  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 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-26 18:41 , Processed in 0.043848 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表