2015-02-04 64 views
2

我是SQl的新手,我正在使用示例,我想知道是否有人可以幫助我編寫一段代碼。我知道我的問號有一個語法錯誤,但我無法弄清楚它在哪裏或爲什麼會發生這種情況。SqlException(0x80131904):'?'附近語法不正確

這裏是我的代碼:

-

<br /> 
    <asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Overline="True" 
     Font-Size="X-Large" Font-Underline="True" Text="Product Information Log"></asp:Label> 
    <br /> 
    <br /> 

</div> 
<asp:GridView ID="GridView1" runat="server" 
    AllowSorting="True" AutoGenerateColumns="False" BackColor="White" 
    BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="3" 
    DataSourceID="SqlDataSource1" 
    EmptyDataText="There are no data records to display." ForeColor="Black" 
    GridLines="Vertical"> 
    <AlternatingRowStyle BackColor="#808080" /> 
    <Columns> 
     <asp:CommandField ShowSelectButton="True" /> 
     <asp:BoundField DataField="CICNumber" HeaderText="CICNumber" 
      SortExpression="CICNumber" /> 
     <asp:BoundField DataField="ItemName" HeaderText="ItemName" 
      SortExpression="ItemName" /> 
     <asp:BoundField DataField="ItemNumber" HeaderText="ItemNumber" 
      SortExpression="ItemNumber" /> 
     <asp:BoundField DataField="PLUNumber" HeaderText="PLUNumber" 
      SortExpression="PLUNumber" /> 
     <asp:BoundField DataField="PackSize" HeaderText="PackSize" 
      SortExpression="PackSize" /> 
     <asp:BoundField DataField="CaseCost" HeaderText="CaseCost" 
      SortExpression="CaseCost" /> 
     <asp:BoundField DataField="UnitRetailCost" HeaderText="UnitRetailCost" 
      SortExpression="UnitRetailCost" /> 
      <asp:CommandField ShowDeleteButton="true" /> 
      <asp:CommandField ShowEditButton="true" /> 

    </Columns> 
    <FooterStyle BackColor="#CCCCCC" /> 
    <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="Green" /> 
    <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" /> 
    <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" /> 
    <SortedAscendingCellStyle BackColor="#F1F1F1" /> 
    <SortedAscendingHeaderStyle BackColor="#808080" /> 
    <SortedDescendingCellStyle BackColor="#CAC9C9" /> 
    <SortedDescendingHeaderStyle BackColor="#383838" /> 
</asp:GridView> 

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 

    ConnectionString="<%$ ConnectionStrings:ProductInfoConnectionString1 %>" 
    DeleteCommand="DELETE FROM [tblProductInfo] WHERE [UserID] = ?" 
    InsertCommand="INSERT INTO [tblProductInfo] ([CICNumber], [ItemName], [ItemNumber], [PLUNumber], [PackSize], [CaseCost], [UnitRetailCost]) VALUES (?, ?, ?, ?, ?, ?, ?)" 
    ProviderName="<%$ ConnectionStrings:ProductInfoConnectionString1.ProviderName %>" 
    SelectCommand="SELECT [CICNumber], [ItemName], [ItemNumber], [PLUNumber], [PackSize], [CaseCost], [UnitRetailCost] FROM [tblProductInfo]" 
    UpdateCommand="UPDATE [tblProductInfo] SET [ItemName] = ?, [ItemNumber] = ?, [PLUNumber] = ?, [PackSize] = ?, [CaseCost] = ?, [UnitRetailCost] = ?, WHERE [CICNumber] = ?"> 


    <DeleteParameters> 
       <asp:Parameter Name="CICNumber" Type="Int32" /> 
      </DeleteParameters> 
      <UpdateParameters> 
       <asp:Parameter Name="ItemName" Type="String" /> 
       <asp:Parameter Name="ItemNumber" Type="Int32" /> 
       <asp:Parameter Name="PLUNumber" Type="Int32" /> 
       <asp:Parameter Name="PackSize" Type="String" /> 
       <asp:Parameter Name="CaseCost" Type="Int32" /> 
       <asp:Parameter Name="UnitRetailCost" Type="Int32" /> 
      </UpdateParameters> 
      <InsertParameters> 
       <asp:Parameter Name="CICNumber" Type="Int32" /> 
       <asp:Parameter Name="ItemName" Type="String" /> 
       <asp:Parameter Name="ItemNumber" Type="Int32" /> 
       <asp:Parameter Name="PLUNumber" Type="Int32" /> 
       <asp:Parameter Name="PackSize" Type="String" /> 
       <asp:Parameter Name="CaseCost" Type="Int32" /> 
       <asp:Parameter Name="UnitRetailCost" Type="Int32" /> 
      </InsertParameters> 

</asp:SqlDataSource> 
</form> 

回答

2

您在更新語句結束還有

[UnitRetailCost] = ?, WHERE [CICNumber] = ? 

,逗號需要刪除:

[UnitRetailCost] = ? WHERE [CICNumber] = ? 
+0

謝謝你的幫助! 我刪除了逗號,但語法錯誤仍然存​​在 –

+0

在這裏涉及什麼樣的對象來執行SQL?我問,因爲SqlClient對象使用命名參數,而不是問號 - https://msdn.microsoft.com/en-us/library/yy6y35y8%28v=vs.110%29.aspx –