2015-01-15 35 views
0

我有一个GridView。它连接到一个SqlDataSource。我的数据库是OracleSqlDataSource的DeleteCommand中获取“ORA-01036:非法变量名称/编号”

当我运行网页时,SELECT命令有效,我看到列表中的项目。当我点击删除按钮,我得到这个错误:

ORA-01036: illegal variable name/number

这是我的GridView和SqlDataSource的:

<telerik:RadAjaxPanel ID="ajaxMyLinks" runat="server" width="100%" LoadingPanelID="RadAjaxLoadingPanel1"> 
    <telerik:RadGrid ID="gridMyLinks" runat="server" DataSourceID="SqlDataSourceMyLinks" AllowAutomaticDeletes="True" AllowPaging="True" BackColor="White" BorderColor="White" PageSize="5" ShowHeader="False"> 
     <MasterTableView AutoGenerateColumns="False" DataSourceID="SqlDataSourceMyLinks" DataKeyNames="N_USER_LINK_ID"> 
      <Columns> 
       <telerik:GridHyperLinkColumn AllowSorting="False" DataNavigateUrlFields="V_LINK" DataNavigateUrlFormatString="{0}" DataTextField="V_LINK_TITLE" DataTextFormatString="{0}" FilterControlAltText="Filter column column" UniqueName="column" Target="_blank"> 
       </telerik:GridHyperLinkColumn> 
       <telerik:GridButtonColumn ButtonType="ImageButton" CommandName="Delete" ImageUrl="Content/images/delete.png" UniqueName="column1"> 
       </telerik:GridButtonColumn> 
      </Columns> 
     </MasterTableView> 
     <PagerStyle Mode="NextPrev" ShowPagerText="False" /> 
    </telerik:RadGrid> 
</telerik:RadAjaxPanel> 
<asp:SqlDataSource ID="SqlDataSourceMyLinks" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" SelectCommand="SELECT V_LINK_TITLE, V_LINK, N_USER_LINK_ID FROM TAPP_IFH_USER_LINK WHERE (N_USER_ID = :USER_ID) ORDER BY N_USER_LINK_ID DESC" DeleteCommand="DELETE FROM TAPP_IFH_USER_LINK WHERE (N_USER_LINK_ID = :USER_LINK_ID)" ProviderName="<%$ ConnectionStrings:DefaultConnection.ProviderName %>"> 
    <DeleteParameters> 
     <asp:Parameter Name="USER_LINK_ID" Type="Int32"></asp:Parameter> 
    </DeleteParameters> 
    <SelectParameters> 
     <asp:SessionParameter Name="USER_ID" SessionField="USER_ID" /> 
    </SelectParameters> 
</asp:SqlDataSource> 

回答

0

找到了解决办法。 DB中的列名与参数之间的参数名不匹配。参数名称为USER_LINK_ID,而列名称为N_USER_LINK_ID

如果这不是您的问题,请检查this post了。它有更多的建议