尝试在GridView
中使用更新时遇到了一个主要问题。从下面的代码中,一旦我点击“编辑”,我就可以选择更改“KPI”名称和“当前目标”。但是,一旦我点击“更新”,我收到一条错误消息:
'nvarchar'附近的错误sysntax
这是我的标记:
<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>
我猜测问题出在update命令上,但在SQL中运行时这是正常的:
UpdateCommand="update _parameter set target = .80
where reporting_group = (select ID from _reporting_group where name = @WG)
and name = 'nco_i_e' ">
请注意,目前,update命令只使用固定的“目标”值和固定的“名称”值。最后,我需要使用在“当前目标”中输入的值和KPI值。但是,一旦我弄清楚为什么我收到'nvarchar'错误信息,我就会谈到这一点。
如果有人能够发现问题所在,我将不胜感激。
答案 0 :(得分:0)
第一件事就是跳出来,因为你应该将UpdateParameter更改为:
<asp:ControlParameter ControlID="GroupSelection" Name="WG" PropertyName="SelectedItem.Text" />
SelectedItem.text
不是有效的属性(.Text
应该大写)。
可能导致问题的其他因素是SQL中的数据类型。如果您的“目标”列无法接受.80的值,或者您的“名称”值无法接受您在“GroupSelection”DropDownList中选择的任何内容,则可能会导致此类语法错误。< / p>