【问题标题】:Delete in Gridview not working在 Gridview 中删除不起作用
【发布时间】:2013-08-29 18:50:14
【问题描述】:

如果我对删除命令使用硬编码值(其中 JOB_ID = 123),它可以工作,但是当我尝试使用参数时,我得到这个错误:

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 而不仅仅是Parameter。我个人从来没有做过这样的事情,但也许这会对你有所帮助。 forums.oracle.com/thread/622971?start=0&tstart=0
  • 可能需要选角?

标签: asp.net sql gridview


【解决方案1】:

感谢加里森的帮助!

我在删除命令中将@JOB_ID 更改为 :JOB_ID,这是您发布的链接中的语法,并且有效。不知道为什么几乎所有示例都使用 @ 作为参数,但再次感谢。

【讨论】:

  • 很高兴它为您解决了问题。您将在网上看到的大多数 .NET 示例都使用 SQL Server 数据库,因为它们都是 MSFT 产品,可以“一起工作”。
猜你喜欢
  • 2016-01-06
  • 2010-09-06
  • 2012-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多