嘗試使用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'錯誤信息,我會去解決這個問題。
如果有人能夠發現問題所在,我將不勝感激。
只是好奇,你有沒有解決這個問題? – jadarnel27