Foxtable(狐表)用户栏目专家坐堂 → [求助]insert into 出错


  共有14172人关注过本帖树形打印复制链接

主题:[求助]insert into 出错

帅哥哟,离线,有人找我吗?
huntkey
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:81 积分:636 威望:0 精华:0 注册:2011/4/16 10:01:00
[求助]insert into 出错  发帖心情 Post By:2011/5/11 21:59:00 [显示全部帖子]

SQL中3个表,TRole,TDepart,TDepart_Roles,三个表中各有一个字段“ID”作为主键,同时TRole,TDepart表的“ID”又作为TDepart_Roles表的外键,在对TDepart_Roles表进行insert into操作时报错:

 


图片点击可在新窗口打开查看此主题相关图片如下:错误提示.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
huntkey
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:81 积分:636 威望:0 精华:0 注册:2011/4/16 10:01:00
  发帖心情 Post By:2011/5/13 21:29:00 [显示全部帖子]

我就是这样做的啊,今天也检查了在TRole表中是存在我要引用的角色的,但是还是出错,我把代码放上来,大侠帮我看看,谢谢

 

'===============================取得机构ID===========================

Dim DID As Integer                 '机构ID

Dim cmd As new sqlcommand

Dim dt As DataTable

Dim txt As winform.textbox=e.Form.controls("textbox1")

 

cmd.c

cmd.commandtext="select * from {TDepart}"

dt=cmd.executereader()

Dim dr As DataRow=dt.find("[FullName]='"& txt.value &"'")

DID=dr("ID")

 

[此贴子已经被作者于2011-5-13 21:30:20编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
huntkey
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:81 积分:636 威望:0 精华:0 注册:2011/4/16 10:01:00
  发帖心情 Post By:2011/5/13 21:31:00 [显示全部帖子]

 

'=============================添加机构角色=================================

Dim RID As Integer                 '角色ID

Dim STR As String                 '机构角色

Dim cmd1 As new sqlcommand           '连接角色表

Dim cmd2 As new sqlcommand           '连接机构_角色表

Dim cmd3 As new sqlcommand           '连接机构_角色表

Dim dt1 As DataTable

Dim lstR As winform.Listbox=e.Form.controls("listbox1")       '已选角色列表

Dim lstDR As winform.Listbox=e.Form.controls("listbox2")       '预览

 

cmd1.c

cmd2.c

cmd1.commandtext="select * from {TRole}"

cmd2.commandtext="insert {TDepart_Roles} ([DepartID],[RoleID],[Remark],[CreaterID],[CreateTime]) Values('"& DID &"','"& RID &"','"& STR &"','"& CurrentUserID &"','"& date.today() &"')"

dt1=cmd1.executereader()

cmd3.c

cmd3.commandtext="select * from {TDepart_Roles} where [Remark]='"& STR &"'"

 

 

For i As Integer =0 To lstR.items.count-1

    Dim dr1 As DataRow=dt1.find("[name]='"& lstR.items(i).trim() &"'")

    RID=dr1("ID")

    STR=TXT.value.trim() & "\" & lstR.items(i)

    lstDR.items.add(STR)

    If cmd3.executenonquery()=1 Then

        Messagebox.show(""& STR &"已存在!","提示")

        Exit For

    ElseIf cmd2.executenonquery()=0 Then

        messagebox.show("添加失败!","提示")

        goto h

    End If

Next

If messagebox.show("添加成功!","提示") Then

    txt.value=""

    lstR.items.clear

End If

h:

[此贴子已经被作者于2011-5-13 21:31:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
huntkey
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:81 积分:636 威望:0 精华:0 注册:2011/4/16 10:01:00
  发帖心情 Post By:2011/5/14 11:47:00 [显示全部帖子]

DID 、RID、CurrentUserID都是整型,不加引号行吗?我试试看

 

不过我在其它地方的代码中都加了的,也没有提示错误,而且也得到了我想要的结果,这是怎么回事呢?


 回到顶部
帅哥哟,离线,有人找我吗?
huntkey
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:81 积分:636 威望:0 精华:0 注册:2011/4/16 10:01:00
  发帖心情 Post By:2011/5/14 11:49:00 [显示全部帖子]

还有就是为什么只提示RoleID冲突而不提示DepartID冲突呢?

 回到顶部
帅哥哟,离线,有人找我吗?
huntkey
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:81 积分:636 威望:0 精华:0 注册:2011/4/16 10:01:00
  发帖心情 Post By:2011/5/16 22:05:00 [显示全部帖子]

哪位大侠指点一下嘛,解决不了,郁闷死了


 回到顶部
帅哥哟,离线,有人找我吗?
huntkey
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:81 积分:636 威望:0 精华:0 注册:2011/4/16 10:01:00
  发帖心情 Post By:2011/5/17 21:19:00 [显示全部帖子]

我试试,谢谢狐爸

 回到顶部
帅哥哟,离线,有人找我吗?
huntkey
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:81 积分:636 威望:0 精华:0 注册:2011/4/16 10:01:00
  发帖心情 Post By:2011/5/18 21:41:00 [显示全部帖子]

谢谢各位,感谢狐爸提醒,我今天终于找到问题所在,说起来还是一个比较低级的错误:

cmd2.commandtext="insert {TDepart_Roles} ([DepartID],[RoleID],[Remark],[CreaterID],[CreateTime]) Values('"& DID &"','"& RID &"','"& STR &"','"& CurrentUserID &"','"& date.today() &"')"

的位置不对,放到STR=TXT.value.trim() & "\" & lstR.items(i)语句之后就对了

 回到顶部