SqlDataSource oracle 11g ora-01036

时间:2015-04-21 09:43:46

标签: c# asp.net oracle oracle11g

这些天我使用Asp.net为我的公司开发测试系统。 但是,我以前从未学过ASP.NET和C#。

所以,我需要你的帮助。

这是我的问题。 现在,我在VS2013上使用Oracle DB,.NET 4.5 FrameWorks,在数据库连接上使用Oracle.DataAccess dll。

我使用asp:SqlDataSource连接数据库。

<asp:SqlDataSource ID="SqlDataSource" runat="server" ConnectionString="<%$ConnectionStrings:GCK_DB%>" ProviderName="<%$ ConnectionStrings:GCK_DB.ProviderName %>" 
SelectCommand="SELECT b.PRODUCT_IDX ,a.VERSION ,a.BUY_DATE ,a.LICENSE_CODE ,a.RESELLER_IDX FROM BUYINFO a, PRODUCTS b, CUSTOMER c WHERE 1=1 AND a.PRODUCT_IDX = b.PRODUCT_IDX AND a.CUS_IDX = c.CUS_IDX AND a.COM_IDX = (Select a.com_idx as com_idx from CUSTOMER a, COMPANY b where 1=1 and a.COM_IDX = b.COM_IDX and a.CUS_IDX = :CUS_IDX)" 
UpdateCommand="UPDATE BUYINFO SET PRODUCT_IDX = 1, VERSION = '2014v6', BUY_DATE = SYSDATE, LICENSE_CODE='SE115AC-DJ-810606-06-64U5QFB', CUS_IDX = :CUS_IDX  WHERE LICENSE_CODE = 'SE115AC-DJ-810606-06-64U5QFB'">
 <SelectParameters>
    <asp:QueryStringParameter Name="CUS_IDX" QueryStringField="CUS_IDX" Type="String" DefaultValue="" />
 </SelectParameters>                    
  <UpdateParameters>
    <asp:QueryStringParameter Name="CUS_IDX" QueryStringField="CUS_IDX" Type="String" DefaultValue="" />
  </UpdateParameters>
</asp:SqlDataSource>

每当我运行此代码时,select命令运行良好。 但是,UdateCommand不起作用,并且它发生ORA-01036异常。

我不知道为什么。 如果我在更新查询中删除此代码“CUS_IDX =:CUS_IDX”,它运行良好。 而且,如果我在更新查询中将此代码“CUS_IDX =:CUS_IDX”更改为“CUS_IDX = 1”,则效果很好。

只有在我尝试在updatecommand上使用参数时才会出现。

我试图在谷歌上找到解决方案,但我找不到任何我想要的答案。

请帮帮我。

PS。 这是我使用的DB表信息。

CREATE TABLE BUYINFO(
  LICENSE_CODE VARCHAR2(100) PRIMARY KEY,  
  PRODUCT_IDX NUMBER NOT NULL,
  VERSION VARCHAR2(100),  
  BUY_DATE DATE NOT NULL,
  RESELLER_NAME VARCHAR2(100),
  COM_IDX     NUMBER,
  CUS_IDX     NUMBER,
  REG_DATE    DATE DEFAULT SYSDATE ,
  REG_IN     NUMBER
);

0 个答案:

没有答案