访问存储过程以插入表并返回ID时发生C#错误

本文关键字:错误 ID 返回 存储过程 插入 访问 | 更新日期: 2023-09-27 18:20:59

我是新手。我不知道如何将其格式化以使其看起来正确。

这是我的程序代码:

ALTER PROCEDURE dbo.InsertItem
@Metal varchar(10),
@Purity varchar(10),
@Weight decimal(18,2),
@Description varchar(50),
@ModifiedBy varchar(50),
@ModifiedOn datetime,
@Identity bigint OUTPUT
AS
INSERT INTO Item VALUES(@Metal, @Purity, @Weight, @Description, @ModifiedBy, @ModifiedOn)
Set @Identity = SCOPE_IDENTITY()
RETURN

以下是我的C#代码访问过程:

queriesAdapter.InsertItem(temp.metal, temp.purity, temp.weight, temp.description, currentEmployee.Username, DateTime.Now, ref itemID);

以下是temp所指的结构:

public struct ItemInformation
{
    public long id;
    public string metal;
    public string purity;
    public decimal weight;
    public string description;
    public bool fake;
    public bool stolen;
    public decimal amountPaid;
    public decimal estimatedValue;
}

itemID是一种长数据型

currentEmployee.username是字符串

这是错误消息:

与'queriesAdapter.Insert(string,string,decimal?,string,string,系统日期时间?,ref long?)'有一些无效的参数。

我不确定我在这里做错了什么。有人能给我一些关于如何解决这个问题的建议吗?

访问存储过程以插入表并返回ID时发生C#错误

实际上这似乎是一个简单的问题-您的itemID参数应该是一个可以为null的长度。该插入方法正在查找ref long?,您正在传入ref long