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

时间:2012-01-22 22:43:59

标签: c# sql-server

我是新手。我不知道如何格式化这看起来是正确的。

这是我的程序代码:

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(字符串,字符串,小数?,字符串,字符串,   system.DateTime?,ref long?)'有一些无效的参数。

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

1 个答案:

答案 0 :(得分:3)

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