2012-10-15 37 views
0

嘗試在asp.net中設置插入語句。ORA-01036:在數據源上使用插入命令時

我的InsertCommand如下:

InsertCommand="INSERT INTO DVD VALUES (DVD_SEQ.NEXTVAL, :DVD_TITLE, :RENTAL_COST, :RATING, :COVER_IMAGE)" 

用於插入參數的代碼是:

<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 
(
dvd_id integer primary key not null, 
dvd_title char(100) not null, 
rental_cost number(9,2) not null, 
rating integer not null, 
cover_image char(100), 
foreign key(rating) references RATING(rating_id) 
); 

我在想這是一個潛在的變量類型的衝突,因爲變量的類型在參數部分確實不同於我的表格中的參數部分,但我嘗試將它們換成更適合的類型無濟於事!

+0

您可以在插入查詢中指定列名,並嘗試插入到DVd(yourolumns ....)值(...) – Habib

+0

InsertParameters中的GENRE_ID是從哪裏來的? –

+0

@Habib我不認爲這是必要的,我已經在DB上執行了相同的語法查詢,並且它沒有返回任何錯誤。 – Linky

回答

0

ORA-01036: illegal variable name/number意味着你綁定了一個不屬於SQL查詢的變量。

換句話說,您需要從InsertParameters(綁定參數)中刪除GENRE_ID,因爲它不是SQL的一部分,錯誤應該消失。