找不到存储过程

本文关键字:存储过程 找不到 | 更新日期: 2023-09-27 18:12:31

当我尝试更新我的表的数据,我得到错误

找不到存储过程

怎么了?

SQL:

CREATE PROCEDURE GetContactName
   @Name char(20),
   @SecondName char(20) output
as
   SELECT @SecondName = [Second Name] 
   FROM WPF.dbo.contacts 
   WHERE Name = @Name
c#

:

sqlConnection.Open();
SqlCommand cmd = new SqlCommand("GetContactName", sqlConnection);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter param = new SqlParameter();
param.ParameterName = "@Name";
param.SqlDbType = SqlDbType.Char;
param.Direction = ParameterDirection.Input;
cmd.Parameters.Add(param);
param = new SqlParameter();
param.ParameterName = "@SecondName";
param.SqlDbType = SqlDbType.Char;
param.Size = 20;
param.Direction = ParameterDirection.Output;
cmd.Parameters.Add(param);
cmd.ExecuteNonQuery();
sqlConnection.Close();

Edit1

我使用的是VS13和SQL Server 2008 Management Studio

我找不到存储过程,但是当我执行SQL代码时,它说这个过程已经存在。

连接字符串:

Data Source=HOME;Initial Catalog=WPF;Integrated Security=True

  • 数据库:WPF
  • 模式:dbo.contacts

找不到存储过程

这是数据库模式的问题。检查连接字符串中使用的用户id的默认模式是否与SP的模式匹配。

只需在您的查询上方添加USE YourdataBaseName后跟GO。

**USE  YourdataBaseName
Go**
CREATE PROCEDURE GetContactName
   @Name char(20),
   @SecondName char(20) output
as
   SELECT @SecondName = [Second Name] 
   FROM WPF.dbo.contacts 
   WHERE Name = @Name
C#:     

由于某些原因,当您使用sql-query创建过程时,它不会显示在文件夹"Stored Procedures"中。但是,如果您通过在"Stored Procedures"文件夹中的上下文菜单中选择适当的选项来创建过程,则会显示该过程,并且一切正常。