这些天我使用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
);