私はSQLデータソースから実行しているグリッドビューを持っています。手順送信するより多くのフィールドを指定する
selectコマンドはかなり長いクエリです。 updateコマンドはストアドプロシージャであり、selectクエリのフィールドの一部のみを更新します。しかし何らかの理由で、私が更新プログラムを実行すると、.Netはストアドプロシージャ呼び出しに他の選択クエリフィールドのいくつかを追加しています。
私は回避策をとっています(ストアドプロシージャに余分なフィールドを追加しました)が、ここでこれをやっている理由を知りたいと思います(私は約10の他の場所で、問題)と無関係なフィールドを完全に削除するために私ができること。
これは、挿入についての私のデータソース
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="CONNECT STRING"
SelectCommand="SELECT TID, CIName, TTDesc, TLA, TDesc, TDel = Case When (Select Count(PAID) from PropertyAttribute where PropertyAttribute.TID=T.TID)=0 then 'delete.gif' else 'onepixblank.gif' End, 'transportdel.asp?TID=' + Convert(varchar(10),TID) as TDelLink FROM Transport T, CountryID C, TransportType TT where T.TType=TT.TType and T.CIID=C.CIID and TT.CIID=C.CIID order by C.CIID, TT.TType, TDesc"
UpdateCommand="TransportUpdate" UpdateCommandType="StoredProcedure">
<UpdateParameters>
<asp:Parameter Name="TID" Type="Int32"
<asp:Parameter Name="TDesc" Type="String"
<asp:Parameter Name="TLA" Type="String"
<asp:ControlParameter ControlID="UserName" Name="UName" PropertyName="Text />
</UpdateParameters>
</asp:SqlDataSource>
いいえ - 間違いなく挿入(別の場所で実行され、別々に処理されている)であり、挿入文がない理由です。 – Rachel