如下两张数据表:
A(id,name)
B(id)
其中A.id是主键,B.id是外键执行以下的insert过程
sql="insert A(id,name) values('"+ID.Text+"','"+Name.Text+"')";
ExecuteSql(sql);   //这个函数是执行sql语句用的
sql="insert B(id) values('"+GetID()+"')";   //GetID()是取得刚才新增的数据的ID
ExecuteSql(sql);     //执行到这步的时候发生错误提示:INSERT 语句与 COLUMN FOREIGN KEY 约束冲突。该冲突发生于数据库 'test',表 'a', column 'id'恳求各位高手指点一下

解决方案 »

  1.   

    你调试了 GetID() 取得得值是 刚才新增的数据的ID 吗?
      

  2.   

    sql="insert B(id) values('"+GetID()+"')";   //GetID()是取得刚才新增的数据的ID
    ???
    既然A.id是主键,刚刚新增数据的ID不就是ID.Text吗?怎么还要用GetID()获取
    错误是因为插入B中的ID(GetID())在A中没有.你GetID()是什么函数?
      

  3.   

    两个sql语句都没有错误,我在查询分析器下都能调试通过的
    而且GetID()取得的值是正确的
      

  4.   

    错误提示很明显,你插入B中的值(id)在表A中没有,所以COLUMN FOREIGN KEY 约束冲突,你跟踪查一下GetID()得到的值是否在表A中存在,再查原因.不明白为什么不直接用ID.Text获得?