【问题标题】:Exception when calling a stored procedure调用存储过程时出现异常
【发布时间】:2009-09-29 08:01:06
【问题描述】:

我有一个 SQL Server 2008 数据库,并希望通过存储过程从 C#-WCF 访问表。 proc 是一个简单的 SELECT 查询,它获取给定 id 的行并将结果填充到一些输出参数中:

PROCEDURE [dbo].[get_stammInfo] 
-- Add the parameters for the stored procedure here
    @id int,
    @strassenSchluessel int OUTPUT,
    @hausNummer int OUTPUT,
    @zusatz nvarchar(1) OUTPUT,
    ...
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
SELECT @strassenSchluessel = strassenSchluessel, 
       @hausNummer = hausNummer,
       @zusatz = zusatz,
       ...
FROM gebaeudeStamm 
WHERE id = @id
END

在我的 C#-Code 中,我创建了一个命令对象,连接数据库并将参数添加到命令对象。

当我调用 ExecuteNonQuery 时,它会抛出以下异常

{"Die Prozedur oder Funktion 'getstammInfo' erwartet den '@id'-Parameter, der nicht bereitgestellt wurde."} 翻译为“过程或函数 'getstammInfo' 期望 ' @id'-参数,未提供”

问题听起来很清楚,但实际上我提供了 id 参数。我可以在VS2008的直接窗口中查询:

_command.Parameters[0]

{@id}

基础{System.Data.Common.DbParameter}:{@id}

比较信息:无

数据库类型:Int32

方向:输入

IsNullable: 假

LocaleId:0

偏移量:0

参数名称:“@id”

精度:0

比例:0

大小:0

源列:“”

SourceColumnNullMapping: 假

SourceVersion:当前

SqlDbType:整数

SqlValue:{7112}

类型名称:“”

UdtTypeName: ""

值:7112

XmlSchemaCollectionDatabase: ""

XmlSchemaCollectionName: ""

XmlSchemaCollectionOwningSchema: ""

如您所见, id 参数存在于 Parameterscollection 中,并且它与存储过程所期望的参数具有相同的类型。我不知道,可能出了什么问题,但似乎错误消息是错误的,并且发生了其他一些错误......

这里有人可以提示我什么我应该查找错误吗?

【问题讨论】:

  • 将 C# 代码发布到您调用 SP 的位置。
  • 能否贴出将参数添加到命令对象的代码...
  • 我注意到异常中 SP 被称为 getstammInfo 但您发布的名称是 get_stammInfo,您确定您调用的 SP 正确吗?
  • @dale:我从异常消息中删除了缺少的下划线,因为它被解释为斜体标记。在调用中,名称中包含下划线。
  • 哦,天哪……我看了一千遍有问题的代码块……直到现在我才意识到,Command-Object 被声明为 CommandType.Text,而不是 CommandType.StoredProcedure(该死复制'n'粘贴)。这就是问题所在。

标签: c# sql-server-2008 stored-procedures


【解决方案1】:

请显示您用来调用该过程的代码。

您的问题是您在参数名称中添加了@ 符号。向SqlCommand 添加参数时,不要包含@ 符号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-05
    • 2011-09-14
    • 1970-01-01
    • 2023-03-09
    • 2011-06-27
    • 2023-03-05
    • 2011-02-16
    • 2015-10-25
    相关资源
    最近更新 更多