で update を使用しようとすると、大きな問題が発生しますGridView
。以下のコードから、[編集] をクリックすると、[KPI] 名と [現在のターゲット] を変更するオプションが表示されます。しかし、「更新」をクリックすると、次のエラー メッセージが表示されます。
「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' ">
現時点では、更新コマンドは固定セットの「ターゲット」値と固定「名前」値のみを使用していることに注意してください。最終的には、「現在のターゲット」に入力した値と KPI 値を使用する必要があります。しかし、「nvarchar」エラー メッセージが表示される理由を理解できたら、これに取り組みます。
誰かが問題がどこにあるのかを見つけることができれば、私はそれを感謝します.