【问题标题】:Procedure or function expects parameter which was not supplied过程或函数需要未提供的参数
【发布时间】:2011-02-05 11:58:08
【问题描述】:

在个人项目上让我发疯;我知道我以前做过这个,但在其他地方没有代码。据我所见,我正在设置参数,我正在设置它的值,连接已打开,但是当我尝试填充数据集时,我收到错误“过程或函数需要参数“@test”不提供'。

(这显然是一个简化的测试!虽然这个或实际的代码相同,但更长的代码。)

C#:

SqlCommand l_oCmd;
DataSet l_oPage = new DataSet();

l_oCmd = new SqlCommand("usp_test", g_oConn);
l_oCmd.Parameters.Add(new SqlParameter("@test", SqlDbType.NVarChar));
l_oCmd.Parameters[0].Value = "hello world";

SqlDataAdapter da = new SqlDataAdapter(l_oCmd);
da.Fill(l_oPage);

SQL:

create procedure usp_test
(
    @test nvarchar(1000)
)
as
select @test

我错过了什么?

【问题讨论】:

  • 如果你只使用会发生什么:l_oCmd.Parameters.Add(new SqlParameter("@test", "hello world"));
  • 两者都做,各方面都一样。

标签: asp.net sql sql-server ado.net


【解决方案1】:

将命令类型改为过程

【讨论】:

  • 呃,应该明白这一点。这让我发疯了。
  • 很久没有 ADO.Net。 (这是我的借口,我坚持)
  • 我遇到了同样的问题。这就是我花了这么多时间在 Entity Framework 上所得到的。我忘记了我的根......
猜你喜欢
  • 2013-01-24
  • 1970-01-01
  • 1970-01-01
  • 2018-06-22
相关资源
最近更新 更多