【发布时间】:2010-11-23 15:29:41
【问题描述】:
我正在尝试调用执行 INSERT 的 SQL 存储过程。然而,当我浏览我的 vb.net 代码时,我收到一条消息说 “过程或函数 sp_InsertARPlanner 指定了太多参数。”
我已经仔细检查过,但 VB 中的 SQL 字符串与存储过程中的参数数相同。
有什么想法可以调试吗?
更新
SQLCmd.CommandText = "sp_InsertARPlanner"
SQLCmd.CommandType = CommandType.StoredProcedure
SQLCmd.Parameters.AddWithValue("@Origin", Trim(txtOrigin.Text))
SQLCmd.Parameters.AddWithValue("@Destination", Trim(txtDest.Text))
SQLCmd.Parameters.AddWithValue("@Miles", iMiles)
SQLCmd.Parameters.AddWithValue("@Rate", iAvgRateperMile)
SQLCmd.Parameters.AddWithValue("@MinCost", dMinCost)
SQLCmd.Parameters.AddWithValue("@Zone", sZone)
SQLCmd.Parameters.AddWithValue("@LaneHaulCost", dLaneHaulCost)
SQLCmd.Parameters.AddWithValue("@TotalCost", dTotalCost)
SQLCmd.Parameters.AddWithValue("@TotalWithSurch", dTotalWithSurch)
SQLCmd.Parameters.AddWithValue("@AvgTypeRate", sAvgTypeRate)
SQLCmd.Parameters.AddWithValue("@AvgLoads", sAvgLoads)
SQLCmd.Parameters.AddWithValue("@FuelLevel", dFuelPercent)
SQLCmd.Parameters.AddWithValue("@Fuel", dFuelAmount)
SQLCmd.Parameters.AddWithValue("@AverageRateAmount", dAverageRateAmount)
SQLCmd.Parameters.AddWithValue("@Floor", decFloor)
SQLCmd.Parameters.AddWithValue("@RainBulkRate", decBulkRate)
SQLCmd.Parameters.AddWithValue("@RateComments", txtRateDesc..Text)
SQLCmd.Parameters.AddWithValue("@PremiumField", txtPremium.Text)
SQLCmd.Parameters.AddWithValue("@EquipCategory", Trim(cboEquipType.Text))
SQLCmd.Parameters.AddWithValue("@UpdateDate", DateTime.Now)
SQLCmd.Parameters.AddWithValue("@FreightDesc", "txtFreightDesc.Text")
Try
SQLCmd.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
SQLCon.Close()
SQLCmd.Parameters.Clear()
Exit Sub
End Try
ALTER PROCEDURE [dbo].[sp_InsertARPlanner]
(@Origin nvarchar(150)
,@Destination nvarchar(150)
,@Miles nvarchar(50)
,@Rate nvarchar(5)
,@MinCost decimal(5,2)
,@Zone varchar(3)
,@LaneHaulCost decimal(5, 2)
,@TotalCost decimal(5, 2)
,@TotalWithSurch decimal(5, 2)
,@AvgTypeRate varchar(50)
,@AvgLoads varchar(4)
,@FuelPercent decimal(5,2)
,@FuelAmount decimal(5,2)
,@AverageRateAmount decimal(5,2)
,@Floor decimal(5, 2)
,@RainBulkRate decimal(5, 2)
,@RateComments nvarchar(50)
,@PremiumField nvarchar(50)
,@EquipCategory nvarchar(50)
,@UpdateDate datetime
,@FreightDesc nvarchar(50))
【问题讨论】:
-
如果您可以发布代码和 SQL 过程,也许这里有人可以为您找到额外的参数;)
-
您使用的是参数化查询还是直接字符串 INSERT?
标签: sql-server vb.net stored-procedures .net-2.0