SQL и ADO.net: слишком много аргументов указано с выходным параметром - PullRequest
1 голос
/ 24 апреля 2009
ALTER PROCEDURE dbo.uspGetOrderTrackingHeaderInfo
  @ContractID varchar(9)
, @SalesRepID int
, @StatusID int
, @TypeID int
, @StartDate datetime
, @EndDate datetime
, @Identity int = null output

AS

INSERT INTO [dbo].[tblOrderTracking]
           ([ContractID]
           ,[StatusID]
           ,[TypeID]
           ,[SalesRepID]
           ,[StartDate]
           ,[EndDate])
     VALUES
           (@ContractID
           ,@StatusID
           ,@TypeID
           ,@SalesRepID
           ,@StartDate
           ,@EndDate)


SET @Identity = Scope_Identity()

Using oConn As New SqlConnection(Me.Master.Master.AdminNetConnString)
        Try
            With cmd
                .Connection = oConn
                .CommandType = CommandType.StoredProcedure
                .CommandText = "dbo.uspInsertOrderTrackingInfo"
                .Parameters.AddWithValue("@ContractID", Session("@OrderContractID"))
                .Parameters.AddWithValue("@SalesRepID", Integer.Parse(Me.ddlSalesRep.SelectedValue.ToString()))
                .Parameters.AddWithValue("@StatusID", Integer.Parse(Me.ddlStatus.SelectedValue.ToString()))
                .Parameters.AddWithValue("@TypeID", Integer.Parse(Me.ddlOrderType.SelectedValue.ToString()))
                .Parameters.AddWithValue("@StartDate", CDate(txtStartDate.Text.Trim))
                .Parameters.AddWithValue("@EndDate", CDate(txtEndDate.Text.Trim))
                .Parameters.Add("@Identity", SqlDbType.Int, ParameterDirection.Output)
            End With

            oConn.Open()

            cmd.ExecuteNonQuery()
            Session("WorkingOrderID") = cmd.Parameters("@Identity").Value

            Response.Redirect("OrderOverview.aspx")
        Catch ex As Exception
            Me.Master.Master.HandleException(ex, True, "An error occured while attempting to save the order setup information")
        Finally
            If Not cmd Is Nothing Then
                cmd.Dispose()
            End If
        End Try
    End Using

1 Ответ

3 голосов
/ 24 апреля 2009

Вы разместили код для процесса "uspGetOrderTrackingHeaderInfo", и вы вызываете процесс "uspInsertOrderTrackingInfo". Возможно, вы изменили неправильный процесс и у вас нет вывода на вставку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...