从表单访问存储过程

时间:2014-05-22 14:09:30

标签: c# sql stored-procedures

我有以下代码:

string connectionString = "<REDACTED>";



            using (SqlConnection invoiceConnection = new SqlConnection(connectionString))
            {
                SqlCommand command = new SqlCommand("dbo.sInvoiceBySchool", invoiceConnection);

                command.Parameters.AddWithValue("@School", SqlDbType.Int);
                command.Parameters["@School"].Value = schoolNumber.Value;

                invoiceConnection.Open();
                command.ExecuteNonQuery();

            }

输出始终返回错误201,&#34;消息=过程或函数&n; sInvoiceBySchool&#39;期望参数&#39; @ School&#39;,这是未提供的。&#34;。我使用numericupdown提供过程所需的值,然后使用按钮来运行代码。

我也尝试将值直接写入代码,结果相同。我是否正确格式化了参数?

2 个答案:

答案 0 :(得分:2)

似乎你错过了SqlCommand.CommandType

添加

command.CommandType = CommandType.StoredProcedure;

答案 1 :(得分:1)

AddwithValue方法需要两个参数。一个用于参数名称,另一个是值

尝试

command.Parameters.AddWithValue(&#34; @ School&#34;,schoolNumber.Value);

我认为还有一个错误。您必须使用

指定此查询是存储过程

command.CommandType = CommandType.StoredProcedure(或类似的东西)