0

试图在 asp.net 中设置插入语句。

我的双行 insertCommand 如下:

InsertCommand="INSERT INTO DVD(DVD_ID, DVD_TITLE, RENTAL_COST, RATING, COVER_IMAGE) VALUES (DVD_SEQ.NEXTVAL, :DVD_TITLE, :RENTAL_COST, :RATING, :COVER_IMAGE);
        INSERT INTO DVD_GENRE(DVD_ID, GENRE_ID) VALUES (DVD_SEQ.CURRVAL, :GENRE_ID)" 

插入参数的代码是:

<InsertParameters>
    <asp:ControlParameter ControlID="titleBox" DefaultValue="TITLEDEFAULT" 
        Name="DVD_TITLE" PropertyName="Text" Type="String" />
    <asp:ControlParameter ControlID="rentalBox" DefaultValue="99" 
        Name="RENTAL_COST" PropertyName="Text" Type="String" />
    <asp:ControlParameter ControlID="ratingList" DefaultValue="25" Name="RATING" 
        PropertyName="SelectedValue" Type="Int32" />
    <asp:Parameter Name="COVER_IMAGE" Type="String" DefaultValue="0.jpg" />
    <asp:ControlParameter ControlID="genreList" Name="GENRE_ID" 
        PropertyName="SelectedValue" />
</InsertParameters>

我正在插入的 OracleDB 表 (DVD) 是:

create table dvd_genre
(
dvd_id integer not null,
genre_id integer not null,
primary key (dvd_id, genre_id),
foreign key(dvd_id) references DVD(dvd_id),
foreign key(genre_id) references GENRE(genre_id)
);

我对造成这种情况的唯一猜测是';' 字符来分解两个插入语句。是的,我知道我可能应该创建一个触发器,但我读过它也可以工作。如果我删除';' 字符我收到有关查询未正确结束的错误。任何帮助将非常感激!!

4

1 回答 1

0

1)“ORA-00911”表示“无效字符”

2)是的,“;” 是一个很好的候选人。问:你可以在一个 ASP 命令中执行两个 SQL 插入吗?我不知道 ;)

3)建议:分解成一条SQL语句,看问题是否消失。

4) 如果是这样,您的选择包括:

a) 在与您的 ASP 代码相同的位置发出两个 SQL 语句(这就是我要做的,但我不知道它是否是您程序中的一个选项)

b)使用触发器(绝对不是我会做的)

c) 创建一个 PL/SQL 存储过程并从您的 ASP 而不是原始 SQL 调用它(可以说是最好的选择)

恕我直言..

于 2012-10-15T05:47:51.667 回答