2013-04-18 98 views
1

嘗試使用GridView中的更新時遇到一個主要問題。從下面的代碼中,點擊'編輯'後,我可以選擇更改'KPI'名稱和'當前目標'。但是,一旦我點擊 '更新',我得到一個錯誤信息:GridView更新導致「nvarchar附近的語法不正確」錯誤

不正確sysntax附近 'nvarchar的'

這裏是我的標記:

<p> 
    <br /> 
    <asp:DropDownList ID="GroupSelection" runat="server" DataSourceID="Group" DataTextField="FcstGroup" 
     DataValueField="FcstGroup"> 
    </asp:DropDownList> 
</p> 
<p> 
    <asp:GridView ID="GridView2" runat="server" DataSourceID="SqlDataSource1"> 
     <Columns> 
      <asp:CommandField ShowEditButton="True" /> 
     </Columns> 
    </asp:GridView> 
</p> 
<p> 
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:WFMConnectionString3 %>" 
     SelectCommand="select 
          case _parameter.name as KPI, 
          [target]*100 as [Current Target] 
          from _parameter inner join _reporting_group 
          on _parameter.reporting_group = _reporting_group.id 

          where _reporting_group.name = @WG " 
UpdateCommand="update _parameter set target = .80 
           where reporting_group = (select ID from _reporting_group where name = @WG) 
           and name = 'nco_i_e' "> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="GroupSelection" Name="WG" PropertyName="SelectedItem.text" /> 
     </SelectParameters> 
     <UpdateParameters> 
      <asp:ControlParameter ControlID="GroupSelection" Name="WG" PropertyName="SelectedItem.text" /> 
     </UpdateParameters> 
    </asp:SqlDataSource> 
</p> 
<asp:SqlDataSource ID="Group" runat="server" ConnectionString="<%$ ConnectionStrings:WFMConnectionString3 %>" 
    SelectCommand=" SELECT  distinct _reporting_group.name AS FcstGroup 
FROM   dbo._metrics INNER JOIN 
        dbo._reporting_group ON dbo._metrics.reporting_group = dbo._reporting_group.id "> 
</asp:SqlDataSource> 

我猜問題是使用更新命令,但在SQL中運行時,此功能正常工作:

UpdateCommand="update _parameter set target = .80 
           where reporting_group = (select ID from _reporting_group where name = @WG) 
           and name = 'nco_i_e' "> 

N注意,目前,update命令只是使用固定的「目標」值和固定的「名稱」值。最終,我需要使用「當前目標」和KPI值中輸入的值。但是,一旦我能夠弄清楚爲什麼我會收到'nvarchar'錯誤信息,我會去解決這個問題。

如果有人能夠發現問題所在,我將不勝感激。

+0

只是好奇,你有沒有解決這個問題? – jadarnel27

回答

0

,在跳出我的,你應該改變你的UpdateParameter只是這樣做的第一件事就是:

<asp:ControlParameter ControlID="GroupSelection" Name="WG" PropertyName="SelectedItem.Text" /> 

SelectedItem.text是不是有效的屬性(在.Text應該是大寫)。

其他可能導致問題的事情是SQL中的數據類型。如果您的「目標」列無法接受.80的值,或者您的「名稱」值無法接受您在「GroupSelection」DropDownList中選擇的任何內容,則可能會導致此類語法錯誤。

相關問題