[英]Procedure or function “” expects parameter '', which was not supplied
我有数据库问题。 必须使用3或4个参数调用存储的Proc。 如果没有给出ImageID,那么它必须进入If循环并执行。 如果给出了ImageID,则执行存储过程的else部分。 但我不知道为什么显示过程或函数“”需要参数'@ImageID',这是未提供的。“
提前致谢
if (!hasImage)
{
parameters = new SqlParameter[]
{
new SqlParameter("@LocationID", LocationID),
new SqlParameter("@PrimaryID",
Convert.ToInt32(CategoryList[i].ToString().Split(',')[0])),
new SqlParameter("@SecondaryID",
Convert.ToInt32(CategoryList[i].ToString().Split(',')[1]))
};
SqlHelper.ExecuteNonQuery(
DbConnString,
System.Data.CommandType.StoredProcedure,
"TempUpdateMerchantCategories_Insert",
parameters);
}
else
{
parameters = new SqlParameter[]
{
new SqlParameter("@LocationID", LocationID),
new SqlParameter("@PrimaryID",
Convert.ToInt32(CategoryList[i].ToString().Split(',')[0])),
new SqlParameter("@SecondaryID",
Convert.ToInt32(CategoryList[i].ToString().Split(',')[1])),
new SqlParameter("@ImageID",
Convert.ToInt64(ImageData[j].ToString().Split(',')[0]))
};
SqlHelper.ExecuteNonQuery(
DbConnString,
System.Data.CommandType.StoredProcedure,
"TempUpdateMerchantCategories_Insert",
parameters);
}
存储过程是这样的。
CREATE PROCEDURE [dbo].[TempUpdateMerchantCategories_Insert]
(
@LocationID BIGINT,
@PrimaryID INT,
@SecondaryID INT,
@ImageID BIGINT)
AS
BEGIN
if (@ImageID is null)
BEGIN
SET NOCOUNT ON;
INSERT INTO TempMerchant_Location_Category(
LocationID,
PrimaryID,
SecondaryID)
VALUES (
@LocationID,
@PrimaryID,
@SecondaryID)
END
ELSE
BEGIN
SET NOCOUNT ON;
INSERT INTO TempMerchant_Location_Category(
LocationID,
PrimaryID,
SecondaryID,
ImageID)
VALUES(
@LocationID,
@PrimaryID,
@SecondaryID,
@ImageID)
END
END
在这种情况下,像这样创建你的proc
CREATE PROCEDURE [dbo].[TempUpdateMerchantCategories_Insert]
( @LocationID BIGINT,
@PrimaryID INT,
@SecondaryID INT,
@ImageID BIGINT = null)
这将使ImageID成为可选参数
没有默认值,它需要一些价值
CREATE PROCEDURE [dbo].[TempUpdateMerchantCategories_Insert] ( @LocationID BIGINT, @PrimaryID INT, @SecondaryID INT, @ImageID BIGINT = null)
您必须通过代码传递@ImageID参数,否则您可以在存储过程中为@ImageID设置默认值。
像@ImageID BIGINT = null
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.