Prozedur oder Funktion ' hat zu viele Argumente angegeben
Bekomme ich eine Fehlermeldung
Prozedur oder Funktion "myStoreProcNameHere" hat zu viele Argumente angegeben.
Unten ist meine gespeicherte Prozedur und SqlDataSource
. Ich bin mit einem GridView-Daten zu Bearbeiten.
Helfen? 🙁
Gespeicherte Prozedur:
ALTER PROCEDURE UpdateTwoTables
(@ID int,
@UserID varchar(10),
@Pass varchar(50),
@Enabled int,
@Permission int,
@Rank int,
@FName varchar(50),
@LName varchar(50),
@Phone varchar(50),
@Email1 varchar(50),
@Email2 varchar(50)
)
AS
BEGIN TRANSACTION
UPDATE tbl_user_login
SET UserID = @UserID, Pass = @Pass,
Enabled = @Enabled, Permission = @Permission,
Rank = @Rank
WHERE ID = @ID
IF @@ERROR <> 0
BEGIN
ROLLBACK
RETURN
END
UPDATE tbl_user_profile
SET FName = @FName, LName = @LName,
Phone = @Phone, Email1 = @Email1, Email2 = @Email2
WHERE ID = @ID
IF @@ERROR <> 0
BEGIN
ROLLBACK
RETURN
END
COMMIT
ASP.NET SqlDataSource
:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:DBConnString %>"
SelectCommand="SELECT tbl_user_login.ID, tbl_user_login.UserID, tbl_user_login.Pass, tbl_user_login.Enabled, tbl_user_login.Permission, tbl_user_login.Rank, tbl_user_profile.ID AS Expr1, tbl_user_profile.FName,
tbl_user_profile.LName, tbl_user_profile.Phone, tbl_user_profile.Email1, tbl_user_profile.Email2 FROM tbl_user_login INNER JOIN tbl_user_profile ON tbl_user_login.ID = tbl_user_profile.ID"
UpdateCommand="UpdateTwoTable" UpdateCommandType="StoredProcedure">
<UpdateParameters>
<asp:Parameter Name="ID" />
<asp:Parameter Name="UserID"/>
<asp:Parameter Name="Pass"/>
<asp:Parameter Name="Enabled"/>
<asp:Parameter Name="Permission"/>
<asp:Parameter Name="Rank"/>
<asp:Parameter Name="FName"/>
<asp:Parameter Name="LName"/>
<asp:Parameter Name="Phone"/>
<asp:Parameter Name="Email1"/>
<asp:Parameter Name="Email2"/>
</UpdateParameters>
</asp:SqlDataSource>
- NÖ. Funktioniert nicht 🙁
- Werfen Sie einen Blick auf diese: Wie zu beheben 'Prozedur oder Funktion' hat zu viele Argumente angegeben "
- das link ist kaputt und unbrauchbar, selbst wenn es nicht da es nur besagt, "Dies bedeutet in der Regel, was es sagt, dass Ihre update -, delete-oder insert-Befehl versucht, mehr Parameter übergeben, als die gespeicherten "
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe diese Fehlermeldung vor, wenn ich war Aufruf einer gespeicherten Prozedur in einer Schleife (foreach).
Die Ursache der Ausnahme, dass ich erhielt, war aufgrund der Tatsache, dass ich nicht die clearing-Parameter nach jeder iteration der Schleife.
Zum Beispiel:
Dieser code löst:
Das zu beheben war klar die Parameter:
Muss der Instanz Erstellen
Vb.Net & C#
glopal Wert