Если я использую жестко закодированные значения для DeleteCommand (где JOB_ID = 123), он работает, но когда я пытаюсь использовать параметр я получаю эту ошибку:Удалить в Gridview не работает
Oracle.DataAccess.Client .OracleException: ORA-00936: отсутствует выражение.
JOB_ID - это поле varchar2 в базе данных. Любая помощь будет большой.
<asp:GridView ID="GridView1" DataSourceID="SqlDataSource1"
runat="server" DataKeyNames="JOB_ID" AutoGenerateColumns="false" ShowHeader="true">
<columns>
<asp:boundfield datafield="JOB_ID" headertext="Job ID"/>
<asp:boundfield datafield="JOB_DATE_CLOSED" headertext="Posting Closes On"/>
<asp:boundfield datafield="JOB_DESC" headertext="Job Description"/>
<asp:TemplateField>
<ItemTemplate>
<asp:Button id="DeleteButton" runat="server" text="Delete"
CommandName="Delete" OnClientClick="return confirm('Delete this Record?');" >
</asp:Button>
</ItemTemplate>
</asp:TemplateField>
</columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:OracleInternet %>"
ProviderName="<%$ ConnectionStrings:OracleInternet.ProviderName %>"
SelectCommand="SELECT JOB_ID, JOB_DATE_CLOSED, JOB_DESC FROM OWNER.JOB_POSTING"
DeleteCommand="DELETE FROM OWNER.JOB_POSTING WHERE JOB_ID = @JOB_ID" >
<DeleteParameters>
<asp:Parameter Name="JOB_ID" Type="String" />
</DeleteParameters>
</asp:SqlDataSource>
В примере здесь используется другой синтаксис запроса для параметров, он также использует 'ControlParameter' вместо просто параметра. Я никогда такого не делал лично, но, возможно, это поможет вам. https://forums.oracle.com/thread/622971?start=0&tstart=0 –
возможно, есть необходимость в кастинге? – andi