Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ORA-01006:绑定变量不存在ASP.NET_C#_Sql_Asp.net_Oracle - Fatal编程技术网

C# ORA-01006:绑定变量不存在ASP.NET

C# ORA-01006:绑定变量不存在ASP.NET,c#,sql,asp.net,oracle,C#,Sql,Asp.net,Oracle,对于ASP.NET编码,我是个新手,所以如果我遗漏了一些明显的东西,请原谅我 我正在编写一个数据输入页面,其中有一个FormView设置为default to insert来处理插入操作,还有一个gridview来查看表中的数据并允许编辑 gridview的编辑工作得很好,但是FormView让我失望。 当我在FormView中点击insert时,我得到一个ORA-01006:bind变量不存在 我正在使用的SQLDataSource指向一个Oracle数据库 我的FormView代码是: &l

对于ASP.NET编码,我是个新手,所以如果我遗漏了一些明显的东西,请原谅我

我正在编写一个数据输入页面,其中有一个FormView设置为default to insert来处理插入操作,还有一个gridview来查看表中的数据并允许编辑

gridview的编辑工作得很好,但是FormView让我失望。 当我在FormView中点击insert时,我得到一个ORA-01006:bind变量不存在

我正在使用的SQLDataSource指向一个Oracle数据库

我的FormView代码是:

<asp:FormView ID="FormView1" runat="server" CellPadding="4" DataKeyNames="DATAKEY" DataSourceID="Oracle" DefaultMode="Insert" ForeColor="#333333" HorizontalAlign="Left">

        <EditRowStyle BackColor="#999999" />
        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <InsertItemTemplate>
         <table>
         <tr>
             <td align="center">Year :</td>
             <td width="30px"><asp:TextBox ID="YearTextBox" runat="server" Text='<%# Bind("YEAR") %>'></asp:TextBox><br /></td>
         </tr>
          <tr>
             <td align="center">Week :</td>
             <td width="30px"><asp:TextBox ID="WeekTextBox" runat="server" Text='<%# Bind("WEEK") %>'></asp:TextBox><br /></td>
         </tr>
          <tr>
             <td align="center">Store :</td>
             <td width="30px"><asp:TextBox ID="StoreTextBox" runat="server" Text='<%# Bind("LOC_LOC_ID") %>'></asp:TextBox><br /></td>
         </tr>
         <tr>
             <td align="center">Brand :</td>
             <td width="30px"><asp:TextBox ID="BrandTextBox" runat="server" Text='<%# Bind("BRAND") %>'></asp:TextBox><br /></td>
         </tr>
          <tr>
             <td align="center">CO_WK_PERC :</td>
             <td width="30px"><asp:TextBox ID="CoWkPercTextBox" runat="server" Text='<%# Bind("CO_WK_PERC") %>'></asp:TextBox><br /></td>
         </tr>
          <tr>
             <td align="center">CO_STD_PERC :</td>
             <td width="30px"><asp:TextBox ID="CoStdPercTextBox" runat="server" Text='<%# Bind("CO_STD_PERC") %>'></asp:TextBox><br /></td>
         </tr>
          <tr>
             <td align="center">INT_WK_PERC :</td>
             <td width="30px"><asp:TextBox ID="IntWkPercTextBox" runat="server" Text='<%# Bind("INT_WK_PERC") %>'></asp:TextBox><br /></td>
         </tr>
          <tr>
             <td align="center">INT_STD_PERC :</td>
             <td width="30px"><asp:TextBox ID="IntStdPercTextBox" runat="server" Text='<%# Bind("INT_STD_PERC") %>' Enabled='<%# Bind("INT_STD_PERC") %>'></asp:TextBox><br /></td>
         </tr>
         </table>
            <div class="auto-style1">
                <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" Text="Insert" />
                &nbsp;<asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />
            </div>
        </InsertItemTemplate>

        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
    </asp:FormView>

年份:

周:
商店:
品牌:
公司工作人员:
CO_标准_PERC:
内部工作百分比:
国际标准百分比:
我的SQLDataSource是:

<asp:SqlDataSource ID="Oracle" 
        runat="server" 
        ConnectionString="<%$ ConnectionStrings:ORACLE_IISUSER %>" 
        DeleteCommand="DELETE FROM &quot;RGP_PLAN_PERC_TEST_BK&quot; WHERE &quot;DATAKEY&quot; = ?" 
        InsertCommand="INSERT INTO &quot;RGP_PLAN_PERC_TEST_BK&quot; (&quot;YEAR&quot;, &quot;WEEK&quot;, &quot;BRAND&quot;, &quot;CO_WK_PERC&quot;, &quot;CO_STD_PERC&quot;, &quot;INT_WK_PERC&quot;, &quot;INT_STD_PERC&quot;, &quot;LOC_LOC_ID&quot;, &quot;DATAKEY&quot;) VALUES (:YEAR, :WEEK, :BRAND, :CO_WK_PERC, :CO_STD_PERC, :INT_WK_PERC, :INT_STD_PERC, :LOC_LOC_ID, (SELECT (MAX(DATAKEY) +1) FROM RGP_PLAN_PERC_TEST_BK) )" 
        ProviderName="<%$ ConnectionStrings:ORACLE_IISUSER.ProviderName %>" 
        SelectCommand="SELECT * FROM &quot;RGP_PLAN_PERC_TEST_BK&quot; ORDER BY &quot;YEAR&quot; DESC, &quot;WEEK&quot; DESC, &quot;LOC_LOC_ID&quot;" 
        UpdateCommand="UPDATE &quot;RGP_PLAN_PERC_TEST_BK&quot; SET &quot;YEAR&quot; = :YEAR, &quot;WEEK&quot; = :WEEK, &quot;BRAND&quot; = :BRAND, &quot;CO_WK_PERC&quot; = :CO_WK_PERC, &quot;CO_STD_PERC&quot; = :CO_STD_PERC, &quot;INT_WK_PERC&quot; = :INT_WK_PERC, &quot;INT_STD_PERC&quot; = :INT_STD_PERC, &quot;LOC_LOC_ID&quot; = :LOC_LOC_ID WHERE &quot;DATAKEY&quot; = :DATAKEY" OnSelecting="Oracle_Selecting">
        <DeleteParameters>
            <asp:Parameter Name="DATAKEY" Type="Decimal" />
        </DeleteParameters>
        <InsertParameters>
            <asp:Parameter Name="YEAR" Type="String" />
            <asp:Parameter Name="WEEK" Type="String" />
            <asp:Parameter Name="BRAND" Type="String" />
            <asp:Parameter Name="CO_WK_PERC" Type="Decimal" />
            <asp:Parameter Name="CO_STD_PERC" Type="Decimal" />
            <asp:Parameter Name="INT_WK_PERC" Type="Decimal" />
            <asp:Parameter Name="INT_STD_PERC" Type="Decimal" />
            <asp:Parameter Name="LOC_LOC_ID" Type="String" />
            <asp:Parameter Name="DATAKEY" Type="Decimal" />
        </InsertParameters>
        <UpdateParameters>
            <asp:Parameter Name="YEAR" Type="String" />
            <asp:Parameter Name="WEEK" Type="String" />
            <asp:Parameter Name="BRAND" Type="String" />
            <asp:Parameter Name="CO_WK_PERC" Type="Decimal" />
            <asp:Parameter Name="CO_STD_PERC" Type="Decimal" />
            <asp:Parameter Name="INT_WK_PERC" Type="Decimal" />
            <asp:Parameter Name="INT_STD_PERC" Type="Decimal" />
            <asp:Parameter Name="LOC_LOC_ID" Type="String" />
            <asp:Parameter Name="DATAKEY" Type="Decimal" />
        </UpdateParameters>
    </asp:SqlDataSource>

我不确定这是否是因为我没有正确链接FormView参数

我希望有人能解释一下我的问题

问候


Tom

什么
ORA-01006:bind变量不存在
错误意味着代码中的某个地方正在构造带参数的SQL语句,但是您调用的语句传递的参数不够或传递的参数太多

仔细看,我可以看到你的

DeleteCommand="DELETE FROM &quot;RGP_PLAN_PERC_TEST_BK&quot; WHERE &quot;DATAKEY&quot; = ?" 
没有参数
它应该看起来像:

DeleteCommand="DELETE FROM &quot;RGP_PLAN_PERC_TEST_BK&quot; WHERE &quot;DATAKEY&quot; = :DATAKEY" 
:

一个程序为一个未在列表中列出的变量发出绑定调用 关联的SQL语句。只有那些前缀为 SQL语句中的冒号(:)或符号(&)可以在 绑定调用,OBIND或OBINDN。此错误也可能由以下原因引起: 预编译器程序与相关库之间不匹配, SQLLIB


BindByName
不是默认值,必须明确设置:

conn.ConnectionString = 
 ConfigurationManager.ConnectionStrings("somedb").ConnectionString)
conn.Open()
Dim ocmd = conn.CreateCommand()
ocmd.BindByName = True