1

我正在使用 MS Visual Studio 2010 和 SQL Server 2008 R2。

在 C# 应用程序中,我尝试使用存储过程,但遇到了一个奇怪的错误。

这是表定义:

create table bed_allotment
(
    bill_id bigint,
    bed_category varchar(50),
    for_days int
)

存储过程:

create procedure AddBed
(
    @bill_id bigint,
    @bed_category varchar(50),
    @for_days int
)
as
begin
    insert into bed_allotment 
    values (@bill_id, @bed_category, @for_days)
end

按钮点击代码:

private void button1_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(conString);
    SqlCommand AddBedCommand = new SqlCommand("AddBed", con);

    AddBedCommand.Parameters.AddWithValue("@bill_id", 1330);
    AddBedCommand.Parameters.AddWithValue("@bed_category", "ICCU");
    AddBedCommand.Parameters.AddWithValue("@for_days", 6);

    con.Open();
    AddBedCommand.ExecuteNonQuery();
    con.Close();
}

当我执行此操作时,会发生错误。它说

SQL 过程需要未提供的参数“@bill_id”

有什么错误?任何建议都会有很大帮助。谢谢!

4

2 回答 2

1

将 更改为AddBedCommand.CommandTypeCommandType.StoredProcedure使请求为RPC 请求

于 2013-08-23T05:34:01.170 回答
0

尝试这个

AddBedCommand.CommandType = CommandType.StoredProcedure;
AddBedCommand.Parameters.Add("@bill_id", SqlDbType.Int).Value = 1330;
AddBedCommand.Parameters.Add("@bed_category", SqlDbType.VarChar).Value = "ICCU";
AddBedCommand.Parameters.Add("@for_days", SqlDbType.Int).Value = 6;
于 2013-08-23T05:35:09.000 回答