Ben Aşağıdaki tabloSqlDataSource çalıştırmak saklı yordam iki kez
[Department] [Location] [Project] [Job Title] [Qty]
-------------------------------------------------------------
HR Jeddah Andalusia JT2 5
IT Jeddah Head Office JT1 3
ve aşağıdaki
CREATE PROCEDURE [dbo].[MManPowerUpdate]
@Dept nvarchar(350),
@Loca nvarchar(350),
@Proj nvarchar(350),
@JobT nvarchar(350)
AS
IF (SELECT QTY FROM [MANPOWER] WHERE ([Department] = @Dept) AND ([Location] = @Loca) AND ([Project] = @Proj) AND ([JobTitle] = @JobT)) > 0
Begin
SELECT 'Operation Completed Successfully.' AS [Result]
UPDATE [MANPOWER] SET QTY = QTY - 1 WHERE ([Department] = @Dept) AND ([Location] = @Loca) AND ([Project] = @Proj) AND ([JobTitle] = @JobT)
End
Else
Begin
SELECT 'Can''t Execute Operation.' AS [Result]
End
Return 0
ASP.net Kanunu olarak SqlDataSource kullanarak sıralı yordamı çalıştırmak çalışıyorum:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:_JOOBERConnectionString %>" SelectCommandType="StoredProcedure" SelectCommand="MManPowerUpdate">
<SelectParameters>
<asp:ControlParameter ControlID="txtDept" Name="Dept" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="txtLoca" Name="Loca" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="txtProj" Name="Proj" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="txtJobT" Name="JobT" PropertyName="Text" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="Result" HeaderText="Result" ReadOnly="True" SortExpression="Result" />
</Columns>
</asp:GridView>
vb.net kodunun arkasında:
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
SqlDataSource1.Select(New DataSourceSelectArguments)
End Sub
Kodu bu değerlerle uyguladığımda ör.
@Dept = HR
@Loca = Jeddah
@proj = Andalus
@JobT = JT2
Güncellemeden sonra Qty'nin 4 olmasını bekledim ve 'İşlem Tamamlandı Tamamıyla Çalıştır'. ama güncellemeden sonra 3 aldım, ve bu, prosedürü çağırdığımda güncelleme ifadesinin iki kez çalıştırıldığı anlamına geliyor. Bu yüzden seninle çözümü bulmayı umuyorum.