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


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

主题:[求助]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
图片点击可在新窗口打开查看

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2011/5/11 23:24:00 [只看该作者]

先插入TRole  TDepart 这两个表的数据

然后插入 TDepart_Roles表的数据。

 

你这里出错是因为 插入部门_角色这个中间表数据的时候, 引用的角色根本不存在。


 回到顶部
帅哥哟,离线,有人找我吗?
huntkey
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2011/5/13 23:15:00 [只看该作者]

你这Values('"& DID &"','"& RID &"','"& STR &"','"& CurrentUserID &"','"& date.today() &"')里面如果有数字类型的就不要加引号了吧('、"、& 都不要了) 。

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


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

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

 

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


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


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

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

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


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

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


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/16 22:26:00 [只看该作者]

执行前打开命令窗口。

代码中output.show(cmd2.commandtext)

看看生成的Insert语句是什么。

 

将这个语句复制到SQL执行窗口执行,看看能否通过。


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


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

我试试,谢谢狐爸

 回到顶部
总数 12 1 2 下一页