【问题标题】:Run-time exception expects parameter '@OE_ID', which was not supplied运行时异常需要未提供的参数“@OE_ID”
【发布时间】:2013-04-26 01:07:14
【问题描述】:
CREATE PROCEDURE DeletetblOfficeEquipmentProfileRecord
@OE_ID  varchar(11)
AS
BEGIN
DELETE FROM [EOEMS].[dbo].[tblOfficeEquipmentProfile]
WHERE [OE_ID]=@OE_ID
END
RETURN
GO


  Dim cmd As SqlCommand = sqlconn.CreateCommand
  sqlconn.Open()
  cmd.CommandType = CommandType.StoredProcedure
  cmd.Parameters.Add("@OE_ID", SqlDbType.VarChar, 11, "oeq-su-001")
  cmd.Parameters("@OE_ID").Value = "oeq-su-001"
  cmd.CommandText = "DeletetblOfficeEquipmentProfileRecord"
  cmd.ExecuteNonQuery()
  sqlconn.Close()

想出新代码,oeq-su-001 是我数据库中OE_ID 的示例之一。

【问题讨论】:

    标签: sql vb.net stored-procedures parameters


    【解决方案1】:

    SqlParameter(string, SqlDbType, int) 创建一个没有值且默认方向为“输入”的SqlParameter。
    Parameters.Add(SqlParameter) 将参数添加到集合中。

    您可以使用Parameters.Add(string, SqlDbType, int, Object) 或在调用 ExecuteNonQuery 之前设置值。

    例如

    cmd.Parameters.Add("@OE_ID", SqlDbType.VarChar, 11, "123")
    
    cmd.Parameters("@OE_ID").Value = "123"
    

    【讨论】:

    • 拿出新代码,'oeq-su-001'是我数据库中OE_ID的例子之一
    • 你的意思是你仍然得到错误?将 .CommandText 行移到 .CommandType 行的正下方。
    • 不返回错误,但不删除数据库中的记录
    • 先生,您的“123”只是数据库中 OE_ID 的一个示例,对吗?所以我可以把任何东西放在那里,只要它的 varchar 类型像“oeq-su-001”????
    • 是的。您的错误可能出在 SP 本身。你知道如何配置文件吗? SP的文字是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多